SQL截断触发器

15

如何在MSSQL中进行TRUNCATE而不是DELETE时触发触发器

3个回答

23

来自MSDN

TRUNCATE TABLE命令无法激活触发器,因为该操作不会记录单个行删除。


所以,如果我有一个事务日志表,并且想要在执行截断时记录,或者某种次要数据复制,每当主要副本上调用截断时应该截断它,这是不可能的 :-( 触发器在 TRUNCATE 上会有很多有用的原因,即使触发器中不能提供单个行。 - Alexander

9

在SQL Server中,您无法执行此操作。

来自MSDN

TRUNCATE TABLE无法激活触发器,因为该操作不记录单个行删除。有关更多信息,请参阅CREATE TRIGGER(Transact-SQL)。


7
你是否允许用户随意运行TRUNCATE TABLE?如果不是,为什么不将TRUNCATE命令放在存储过程中,并在TRUNCATE完成后处理触发器中需要做的事情,而不用担心使用触发器呢?(当然,必须按相反的顺序执行。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接