我有一个名为“用户”的表,其中包含(id,名称,姓氏,dni,dob,city和lastUpdated)
我想做的是,执行触发器INSTEAD OF UPDATE,并在其中计算将要更新的列数,如果要更新的唯一列是“ lasUpdated”列,则不要更新任何内容。 / p>
CREATE TRIGGER USER_TRIGGER
ON USERS
INSTEAD OF UPDATE
AS
/* if the updated column is ONLY lasUpdated */
IF (COUNT(UPDATED_CLOUMNS) == 1 && UPDATED_COLUMN == "lasUpdated")
BEGIN
ROLLBACK TRANSACTION
RETURN
END
GO
任何想法如何实现呢? 预先谢谢你。
答案 0 :(得分:1)
一种方法是使用以下命令在INSTEAD OF触发器中进行更新:
WHERE inserted.Col1<>deleted.Col1
OR inserted.Col2<>deleted.Col2
etc, for all columns except "lasUpdated"
请注意,如果任何列可以为NULL,则也需要在逻辑中进行处理。