T-SQL如何防止删除表中的第一行 [英] T-SQL how to prevent deletion first row in table

查看:110
本文介绍了T-SQL如何防止删除表中的第一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的表:

CREATE TABLE Users
(

    idUser int IDENTITY(1,1) PRIMARY KEY,
firstName varchar(40) NOT NULL,
secondName varchar(40),
lastName varchar(70) NOT NULL,
position varchar(80),
section varchar(80) NOT NULL
)

某人仅需要删除一个用户。如何防止第一行被删除?
我无法重新插入它,第一行必须具有idUser = 1。

And someone need to delete only one of the Users. How can I prevent first row being deleted? I can't reinsert it, first row must have idUser = 1.

推荐答案

您可以在以下位置创建触发器table [用户]监视何时删除该表中的寄存器。因此,您检查删除是否为userId:1,然后不删除它,否则..删除它,这里是代码:

You can create a Trigger on table [Users] that watch when a register from this table is being deleted. So you check if deletion is userId:1 then you don't delete it, else.. you delete it, here is the code:

CREATE TRIGGER sampleTrigger
    ON [Users]
    INSTEAD OF DELETE
AS
    IF EXISTS(SELECT * FROM deleted WHERE idUser IN (1))
    BEGIN
        RAISERROR ('Is not allowed to delete idUser: 1',16, 1)  
    END
    ELSE
    BEGIN
        DELETE [Users] WHERE idUser IN (SELECT idUser FROM deleted)
    END
GO

这篇关于T-SQL如何防止删除表中的第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆