SQL Server - 触发器不会触发特定用户
问题描述:
最近我遇到了我正在处理的服务器上的特定SQL Server用户帐户,该服务器可以执行不会触发触发器的查询。在不同用户下执行的相同查询按预期触发触发器。SQL Server - 触发器不会触发特定用户
我使用有问题的用户检查了sys.triggers表,它们都被启用。
在SQL Server中是否有一个设置可以防止为特定用户帐户触发触发器?
答
没有设置或旋钮,你可以激活,从而触发不会火了几users.You需要一些自定义逻辑
这是通过使用返回 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
+0
有问题的用户可能只执行BULK INSERT命令。该命令有一个禁用触发器的设置。 – Alex
请提供查询的示例。某些BULK操作具有标志,允许您控制是否触发触发器。 – Alex
也是触发器的一个例子。 – MartW