执行一些MSSQL练习,我试图创建一个触发器。然而,我的解决方案在理论上对我来说是正确的,但它不起作用。卡在创建触发器
目标是为只有两列的表创建触发器。一列是主键,是标识,不允许空值。另一列是ALLOWS NULL值。但是,它允许整个表中的NULL值仅用于单行。基本上,触发器应触发此表上的插入/更新操作,当表中列已存在NULL值时,将尝试插入/更新列为NULL值。
这种情况我在触发代码捕获如下:
After Insert, Update
AS
set ANSI_WARNINGS OFF
If ((select count(NoDupName) from TestUniqueNulls where NoDupName is null) > 1)
BEGIN
Print 'There already is a row that contains a NULL value, transaction aborted';
ROLLBACK TRAN
END
然而,尽管如此,交易执行本身。我不确定为什么会发生这种情况,并且触发器不会自行发射。
那么有人在这里启发我的疑虑吗?
我也在触发器开始时使用了set ANSI_WARNINGS OFF。
工作,非常感谢你! – Parijat 2011-05-27 22:21:34