我正在使用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
1 回答
我解决了这个问题我补充道
在开始和
在触发器体的末端 .
码: