【发布时间】:2009-04-29 08:55:15
【问题描述】:
我正在尝试在表上编写触发器以避免插入两个未标记为 IsDeleted 的名称。但是选择的第一部分包含插入的部分,因此条件始终为真。我虽然使用 FOR 关键字会导致触发器在 INSERTION 之前运行,但在这种情况下,插入的行已经在表中。我错了还是这就是所有 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
【问题讨论】:
标签: sql-server triggers