我正在SQL Server中工作。我有一个名为task的表,其中有一个名为taskname的列。现在,如果有人将任务名称从“ ABC”更新为“ DEF”,我不想对其进行更新,我希望它在任务名称列中保持ABC。我希望我的问题对所有人都清楚。有人可以指导我如何做到这一点。
答案 0 :(得分:0)
您可以创建一个防止这种情况的触发器。
CREATE TRIGGER tg_name_me
ON tbl_name
INSTEAD OF UPDATE
AS
IF EXISTS (
SELECT *
FROM INSERTED I
JOIN DELETED D ON D.PK = I.PK AND ISNULL(D.name,I.name+'.') <> ISNULL(I.name,D.name+'.')
)
RAISERROR('Changes to the TABLENAME tbl_name are NOT allowed', 16,1);
GO
这将创建一个事件,该事件将在生成更新语句时自动激活。
答案 1 :(得分:0)