我正在创建一个类似这样的更新触发器(SQL Server 2005):
行的状态列是23还是25不更新它。否则更新它。这很简单。我正在尝试
OldState = (Select State from Deleted)
If OldState in (25,23)
Update it --how to do it easily?
else
dont do nothing for this row
问题是触发器是用所有更新的行调用的,所以删除的是一个集合,这意味着第一条指令不起作用,因为它试图只获取1个值并得到一个集合..
这很简单,我错过了什么?
非常感谢
答案 0 :(得分:3)
此代码假定:
示例:
UPDATE
M --yes, this is correct
SET
SomeCol = SomeValue,
...
FROM
MyTable M
JOIN
DELETED D ON M.KeyCol = D.KeyCol
WHERE
D.State IN (23, 25)