创建触发器以检查特定列

时间:2014-03-11 18:36:08

标签: sql-server

我想有一个触发器验证列是否具有特定值,我知道我应该使用外键,但在这种情况下我不能这样我想创建一种通用触发器以验证表中的特定列:

例如,我有这个查询返回我需要的基本信息,按惯例返回表名,我添加字符串' TypeId'我把它放在一个变量@Column中,当我尝试检查该列是否被更改时,IF UPDATE给了我一个错误。有没有办法验证此列是否已使用此方法更改?

    SELECT @schema = OBJECT_SCHEMA_NAME(parent_id),
           @table = OBJECT_NAME(parent_id) 
      FROM sys.triggers 
     WHERE object_id = @@PROCID

     DECLARE @Column NVARCHAR(50) = @table + N'TypeId'

     IF UPDATE (@Column)              
     BEGIN
        PRINT '->' + @table + '<-'   
     END   

谢谢!

0 个答案:

没有答案