1
我正在使用DDL觸發器來監視表結構更改(ALTER_TABLE
)並將標誌更新到表中。我的應用程序有SET CONCAT_NULL_YIELDS_NULL OFF
,我無法更改它。使用此設置OFF
時,向表中添加新列時,下面的觸發器出錯。它設置爲ON
,它工作正常。SQL Server 2008 R2:DDL觸發器(ALTER_TABLE)和CONCAT_NULL_YIELDS_NULL OFF
任何想法該怎麼辦?
消息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