1

如何创建在更新或插入之前运行的触发器并检查新行是否具有特定条件?

假设 A 列的值大于 5

谢谢。

4

2 回答 2

3

假设 A 列的值大于 5

应该在表列上使用CHECK约束TRIGGER而不是 来完成,例如:

 CREATE TABLE [dbo].[SalesHistory](
      (...)
      [A] [int] NULL CHECK (A > 5)
)
于 2013-04-14T14:28:43.520 回答
1

您可以使用INSTEAD OF触发器

简单的例子:

CREATE TRIGGER iu_trigger ON [dbo].[SalesHistory]
INSTEAD OF INSERT, UPDATE
AS
BEGIN
  IF EXISTS (
             SELECT 1
             FROM inserted
             WHERE A > 5
             )
  BEGIN
    PRINT 'A > 5'     
  END
  ELSE
  BEGIN
    PRINT 'A <= 5'
  END            
END
于 2013-04-14T15:37:28.270 回答