gpt4 book ai didi

tsql - 对于 TSQL 插入/更新触发器,插入和删除都可以为空吗?

转载 作者:行者123 更新时间:2023-12-01 08:01:10 24 4
gpt4 key购买 nike

我一直在使用 TSQL 触发器,假设插入的表总是包含插入或更新的记录,而删除的表总是包含更新的记录(我忽略了删除)。

这是相关的 MSDN 文章:

http://msdn.microsoft.com/en-us/library/ms191300.aspx

但是,我遇到了插入和删除都为空的情况。这是我一直在使用的测试触发器。

CREATE TRIGGER [dbo].[InsertUpdateTest] ON [dbo].[Test] 
AFTER INSERT, UPDATE
AS
DECLARE @countInserted INT
DECLARE @countDelete INT

SET @countInsert = (SELECT COUNT(*) FROM INSERTED)
SET @countDeleted = (SELECT COUNT(*) FROM DELETED)

IF (@countInserted = 0 AND @countDelete = 0)
BEGIN
print 'Inserted and deleted are both empty'
END

在什么条件下会发生这种情况?

最佳答案

回答我自己的问题。当触发表上的更新语句未更新任何行时,就会发生这种情况。触发器仍然会触发,但插入和删除的表都是空的。例如:

UPDATE Test Set somefield=0 WHERE id='Values does not exist'

关于tsql - 对于 TSQL 插入/更新触发器,插入和删除都可以为空吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11791294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com