【发布时间】:2016-02-03 11:06:09
【问题描述】:
我正在尝试编写我的第一个触发器。我有元素表。我里面的记录很少。很少有记录在 1 上具有复选框,在 0 上具有复选框。
我正在尝试制作触发器,以防止删除复选框为 1 (elm_intcolumn1) 的记录。
触发器正在工作,但我无法使用复选框 0 删除记录。触发器正在阻止我元素上的所有记录。
ALTER TRIGGER [dbo].[test]
ON [dbo].[elements]
INSTEAD OF DELETE
AS
BEGIN
SELECT CASE
WHEN elm_intcolumn1 = 1
THEN 0
WHEN elm_intcolumn1 = 0
THEN 1
END
FROM elements
BEGIN
RAISERROR ('błąd', 16, 1)
ROLLBACK TRANSACTION
RETURN;
END
END
【问题讨论】:
-
每个语句触发一次,而不是每个行触发一次。如果有人写了一个
DELETE,它(至少)删除了elm_intcolumn1为1 的一行,并且(至少)删除了为0 的一行,那么你想发生什么?
标签: sql sql-server tsql triggers