我已经通过Entity Framework Code First Approach创建了一个数据库,我的应用程序已准备好并正在运行。问题是在创建数据库时我没有在Cascade Delete上变为“False”。 现在,如果我从一个表中删除通过外部引用另一个表的任何记录,那么包含已删除行的外键的所有记录都将从另一个表中删除。 实战演示:
假设我有一个名为Passenger的表:
ID Name CategoryID
1 ABC 1
这里的CategoryID是外键
这是类别表
ID Name
1 Gold
假设我在类别表
上运行查询delete from Category where ID = 1
现在我的乘客表中的所有记录都被删除了。我想限制它。现在可以通过SQL吗?
答案 0 :(得分:1)
我想 This is what you are looking for:
alter TRIGGER customers_del_prevent
ON dbo.customers
INSTEAD OF DELETE
AS
BEGIN
insert into dbo.log
values ('DELETE')
RAISERROR ('Deletions not allowed from this table (source = instead of)', 16, 1)
END
希望这会对你有所帮助。 :)