sqllocaldb error code 17892 : Logon failed for login due to trigger execution. Changed database context to‘master’.
不知道怎么肥4,过完年之后再登录Localdb就出现了这个错误,而且实例无法停止,执行 sqllocaldb stop instancename 报错。由于IT经理要求使用Localdb作为研发数据库因此不得不想办法解决这个问题。网络上的方法基本上都试过了,而且相关的资料非常的少,下面分享下解决方案:
- 1. 备份数据库文件
找到项目的数据库文件进行备份。 - 2. 修改注册表
输入regedit打开注册表管理器,找到KEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\UserInstances目录
![]()
在 UserInstances 中所列出的文件夹即为你当前系统中的数据库实例。倘若你创建了N个实例,你可以通过右侧的 DataDirectory 项的值来区分是哪个实例,该项值是一个文件夹路径,最后一个斜杠后面的即为你的实例名称:

将 MSSQLLocalDB 重命名为 MSSSQLLocalDB_old 点击确定。
此时你在 cmd 或 powershell 中运行 sqllocaldb i 时将会显示新旧两个名称的实例,不用担心,也不用管它。执行下一步操作后一切都会恢复正常。
- 3.创建实例
在控制台或powershell中执行创建实例命令sqllocaldb create MSSQLLocalDB
然后启动实例sqllocaldb start MSSQLLocalDB
接下来再执行sqllocaldb i你会发现之前我们命名为MSSQLLocalDB_old的实例已经消失了,而且注册表中的项和值也恢复正常(MSSQLLocalDB_old已被自动清理)。 - 4.恢复数据库
接下来就是最后一步,通过ssms工具登录localdb后,将之前备份的数据库恢复到当前实例中即可。


浙公网安备 33010602011771号