繁体   English   中英

触发器 - 使用SQL Server

[英]Triggers - with SQL Server

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

假设列A的值大于5

谢谢。

假设列A的值大于5

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

 CREATE TABLE [dbo].[SalesHistory](
      (...)
      [A] [int] NULL CHECK (A > 5)
)

您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM