我想在表上写一个触发器,以避免插入两个未标记为IsDeleted的名称。但选择的第一部分包含插入的部分,因此条件始终为真。我虽然使用FOR关键字会导致触发器在INSERTION之前运行,但在这种情况下插入的行已经在表中。我错了还是这是所有FOR触发器的工作原理?为什么FOR触发器不能运行?
ALTER TRIGGER TriggerName
ON MyTable
FOR INSERT, UPDATE
AS
BEGIN
If exist (select [Name] From MyTable WHERE IsDeleted = 0 AND [Name] in (SELECT [Name] FROM INSERTED)
BEGIN
RAISERROR ('ERROR Description', 16, 1);
Rollback;
END
END
而是表示触发器将执行而不是执行的命令 – 2009-04-29 08:59:08