在三个不同的表格中,我有INSERT
,UPDATE
和DELETE
个触发器。
我肯定地知道他们按预期工作(尝试添加,删除,更新并确认对日志表的更改)。但是,如果没有我的日志表包含任何内容,就会删除或添加行。
所以我的问题是:例如是否可以在没有触发启用的INSERT触发器的情况下添加记录?
这是在SQL Server 2005上。
答案 0 :(得分:0)
如果执行了禁止使用特定触发器的查询,例如,使用
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
此外,正如Damien指出的那样,在某些情况下,您的触发器可能只适用于单个记录。 错了(简单的例子:
UPDATE table SET field = value WHERE PK = (SELECT PK FROM inserted)
更好:
UPDATE table SET field = value WHERE PK IN (SELECT PK FROM inserted)
向我们展示你的触发器,我们会弄明白。