【问题标题】:Trigger to not delete Data from a table触发不从表中删除数据
【发布时间】:2014-09-22 19:24:39
【问题描述】:

我有一个名为 PaperInfo 的表格,表格上的示例数据是:

PaperID   Type   Description
1         T      Level 1
2         S      Level 2
3         V      Level 3

如何强制执行一个触发器,没有人可以从上表中删除记录。当有人试图删除它时,例如如下:

Delete from dbo.paperInfo 
WHERE PaperID = 1

它应该显示一条错误消息“无法从 Paperinfo 表中删除记录”

我该怎么做?

【问题讨论】:

    标签: sql-server tsql sql-server-2012 triggers


    【解决方案1】:

    您应该编写一个INSTEAD OF 触发器。这将取代删除操作:

    CREATE TRIGGER td_PaperInfo 
        ON  PaperInfo 
        INSTEAD OF DELETE
    AS 
    BEGIN
        RAISERROR ('Cannot Delete Records from Paperinfo Table', 16, 1)
    END
    

    【讨论】:

    • 小修正是RAISERROR
    • 真的对不起哥们。我实际上是在测试后粘贴了代码。不知道A 是如何在这个过程中迷路的! ;)
    猜你喜欢
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多