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 点击确定。
此时你在 cmdpowershell 中运行 sqllocaldb i 时将会显示新旧两个名称的实例,不用担心,也不用管它。执行下一步操作后一切都会恢复正常。

  • 3.创建实例
    在控制台或powershell中执行创建实例命令 sqllocaldb create MSSQLLocalDB
    然后启动实例 sqllocaldb start MSSQLLocalDB
    接下来再执行 sqllocaldb i 你会发现之前我们命名为 MSSQLLocalDB_old的实例已经消失了,而且注册表中的项和值也恢复正常(MSSQLLocalDB_old已被自动清理)。
  • 4.恢复数据库
    接下来就是最后一步,通过ssms工具登录localdb后,将之前备份的数据库恢复到当前实例中即可。
posted @ 2022-02-11 14:23  TylorChen  阅读(736)  评论(0编辑  收藏  举报