本文介绍了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如何防止删除表中的第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!