将数据库还原为旧数据



我在SQL server中工作。我有一个名为task的表,其中有一列是taskname。现在,如果有人将任务名称从"ABC"更新为"DEF",我不希望它被更新,我希望它保持ABC在任务名称列中。我希望大家都清楚我的问题。有人能指导我怎么做吗。

您可以创建一个触发器来防止这种情况发生。

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

这将创建一个事件,该事件在生成更新语句时自动激活。

  • 创建一个以"TaskName"列为主键的新表
  • 在此表中插入您当前的TaskName
  • 将当前的"TaskName"列定义为引用新表的外键。您可以根据需要定义级联规则

最新更新