2016-05-23 11 views
0

最近、私が作業しているサーバー上の特定のSQL Serverユーザーアカウントを検出しました。このアカウントは、トリガを起動させないクエリを実行できます。別のユーザーの下で実行された同じクエリは、トリガーを期待どおりに起動します。SQL Server - 特定のユーザーに対してトリガーが発動しない

問題のユーザーを使用してsys.triggersテーブルを確認しましたが、すべて有効になっています。

特定のユーザーアカウントに対してトリガーが発生しないようにするSQL Serverの設定がありますか?

+0

クエリの例を示してください。特定のBULK操作には、トリガを起動するかどうかを制御できるフラグがあります。 – Alex

+0

とトリガの例もあります。 – MartW

答えて

0

あり設定または少数users.Youは、いくつかのカスタム・ロジックを必要とするため、あなたが活性化することができノブので、文句を言わない火をトリガされていません。これはSUSER_SNAME()

でユーザ名を 戻り statemntを使用して確認することで動作し

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

関連する問題