【发布时间】:2015-06-26 23:17:23
【问题描述】:
我正在使用 DDL 触发器来监视表结构更改 (ALTER_TABLE) 并将标志更新到表中。我的应用程序有SET CONCAT_NULL_YIELDS_NULL OFF,我无法更改它。使用此设置OFF,在向表中添加新列时,下面的触发器会出错。将它设置为ON,它工作正常。
有什么想法吗?
消息 1934,级别 16,状态 1,过程 TableChangeTracking,第 50 行
SELECT 失败,因为以下 SET 选项不正确 设置:'CONCAT_NULL_YIELDS_NULL'。验证 SET 选项是 正确用于计算列上的索引视图和/或索引 和/或过滤索引和/或查询通知和/或 XML 数据 类型方法和/或空间索引操作。
代码:
CREATE TRIGGER [TableChangeTracking]
ON DATABASE
FOR ALTER_TABLE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @data XML;
DECLARE @object sysname;
SET @data = EVENTDATA();
SET @object = @data.value( N'(/EVENT_INSTANCE/ObjectName)[1]', N'sysname')
IF @object IS NOT NULL
update AUDIT_TABLES set NEED_TRIGGER_UPDATE = N'Y' where TABLE_NAME = @object
END;
GO
【问题讨论】:
标签: triggers sql-server-2008-r2 ddl