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

SQL Server的错误日 sql server948错误_SQL Server的错误日

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

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

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

SQL Server的错误日 sql server948错误_SQL Server的错误日_02

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

SQL Server的错误日 sql server948错误_SQL Server的错误日_03

SQL Server的错误日 sql server948错误_SQL_04

  

SQL Server的错误日 sql server948错误_SQL Server的错误日_05

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

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

SQL Server的错误日 sql server948错误_SQL Server的错误日_06

 

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

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

SQL Server的错误日 sql server948错误_数据库_07

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

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

SQL Server的错误日 sql server948错误_数据库_08

说明:

-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统计。