3 つの異なるテーブルで、別々INSERT
の ,UPDATE
とDELETE
トリガーがあります。
それらが期待どおりに機能することを確信しています(追加、削除、更新を試み、ログテーブルへの変更を確認しました)。ただし、ログテーブルにコンテンツがなくても、行が削除または追加されることがあります。
だから私の質問は: たとえば、有効な INSERT トリガーがトリガーされずにレコードを追加することは可能ですか?
これは SQL Server 2005 上にあります。
3 つの異なるテーブルで、別々INSERT
の ,UPDATE
とDELETE
トリガーがあります。
それらが期待どおりに機能することを確信しています(追加、削除、更新を試み、ログテーブルへの変更を確認しました)。ただし、ログテーブルにコンテンツがなくても、行が削除または追加されることがあります。
だから私の質問は: たとえば、有効な INSERT トリガーがトリガーされずにレコードを追加することは可能ですか?
これは SQL Server 2005 上にあります。
たとえば、次を使用して、特定のトリガーの使用を無効にするクエリが実行された場合に可能です。
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
また、ダミアンが指摘したように、多くの場合、トリガーは単一のレコードでしか機能しない場合があります。間違っています (簡単な例:
UPDATE table SET field = value WHERE PK = (SELECT PK FROM inserted)
より良い:
UPDATE table SET field = value WHERE PK IN (SELECT PK FROM inserted)
あなたのトリガーを見せてください。