由于执行触发器导致登录失败,错误号为17892的解决方案

9 篇文章 0 订阅
6 篇文章 0 订阅

登录SQL SERVER时提示“由于执行触发器,登录名xxx的登录失败”如下图

 原因: 编写了服务器级别的触发器,执行触发器时发生了错误导致. 如下图,trg_logon为一个登录触发器,如果执行错误,则不能正常登录SQL SERVER。

解决方法:以最小配置模式启动SQL SERVER后,禁用或删除触发器,详细步骤如下:

1.开始菜单启动配置管理器

 点击SQL SERVER 服务,右侧双击SQL SERVER(XXX) 打开属性窗口->高级->启动参数->在启动参数里加上”;-f”注意-f前要加上分号。

 

 

-f 表示以最小配置模式运行SQ L SERVER, 从个人使用效果来看最小配置模式SQL SERVER只允许一个用户连接,似乎已经包含了”单用户模式(参数为-m)”,填写好参数后,点击确定。

保存启动参数后,会出现以下对话框,点击确定,然后重启SQL SERVER ,刚才的设置就会生效。

 

 重启SQL SERVER 后,打开SQL SERVER Management Studio, 登录连接即可

找到触发器,鼠标右键,禁用。

 触发器禁用完后,将前面设置的 ;-f  去掉,重新启动SQL SERVER服务,就可以正常连接了,

如果不去掉  ;-f  再次连接就会出现如下图:

说明:

-f  已最小配置模式启动服务器。然后,系统管理员可以对配置选项重新配置(使用sp_configure系统存储过程)。

-m 表示在单用户模式下启动SQLServer实例。如果SQLServer是以单用户模式启动的,则只能连接一个用户。CHECKPOINT机制(它确保完成的事务定期从磁盘高速缓存写入数据库设备中)将不启动。(一般情况下,如果您遇到需要修复的系统数据库问题时,可使用此选项)

-n 表示您不想使用WindwsNT应用程序日志来记录SQLServer事件。如果用-n选项启动SQLServer实例,则最好也使用-e选项,否则将不会记录SQLServer事件。

-trace# 表示应使用指定的有限跟踪标记(trace#)来启动SQLServer实例。跟踪标志来启动具有非标准行为的服务器。有关可用跟踪标记(trace#)的更多信息,请参见跟踪标记。重要当指定跟踪标志时,请使用-T来传递跟踪标志号,SQLServer接受小写字母t(-t);然而,-t还设置SQLServer支持工程师所需的其他内部跟踪标记。

-v 显示服务器的版本号。

-x禁用维护CPU统计。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值