SQL Server - 触发器不会针对特定用户触发

时间:2016-05-23 10:29:48

标签: sql-server triggers

最近,我在我正在处理的服务器上遇到了一个特定的SQL Server用户帐户,该帐户可以执行不会触发触发器的查询。在不同用户下执行的相同查询会按预期触发触发器。

我使用相关用户检查了sys.triggers表,并且它们都已启用。

SQL Server中是否有某个设置可以防止针对特定用户帐户触发触发器?

1 个答案:

答案 0 :(得分:0)

没有可以激活的设置或旋钮,因此触发器不会为少数用户触发。您需要一些自定义逻辑

这可以通过使用 Return statemnt并使用 SUSER_SNAME()

检查用户名来实现
create trigger trg_test2
on dbo.test2
after insert
as
Begin

if ( suser_Sname()='mike')
Begin
return
END

insert into dbo.test3
select * from inserted

end


--test2 has trigger which inserts into test3

insert into dbo.test2
select 1

select * from test2
select * from test3--Table 3 wont have any data if username is mike