为什么将ANSI_WARNINGS ON设置为XML方法?

文档https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-warnings-transact-sql中没有提到XML,数据库默认设置为OFF,有一个数据库触发器,承包商在其中添加了此设置,说对于XML应该设置为ON:

create trigger tDDLLog on database
for DDL_DATABASE_LEVEL_EVENTS
as
SET NOCOUNT ON
SET ANSI_WARNINGS ON --contractors added this and…
declare @data XML = EVENTDATA()
if (select @data.value('(/EVENT_INSTANCE/objectname)[1]','varchar(max)')) is not null
insert DDLLog (LoginName,HostName,objectname,ObjectType,EventType,EventSQLCommand,EventTime,XMLChange)
values (
 @data.value('(/EVENT_INSTANCE/LoginName)[1]','varchar(2000)'),HOST_NAME(),@data.value('(/EVENT_INSTANCE/objectname)[1]','varchar(100)'),@data.value('(/EVENT_INSTANCE/ObjectType)[1]',@data.value('(/EVENT_INSTANCE/EventType)[1]',@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','varchar(max)'),getdate(),@data
)
SET ANSI_WARNINGS OFF --… this
go

在Internet上,我发现了这样的消息“ 'ANSI_WARNINGS'。验证SET选项正确用于索引视图和/或计算列上的索引和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作。“但是,为什么触发器然后与我的更新存储过程一起使用并干扰承包商?我无法重现这种情况...我想知道还有哪些其他隐藏的困难吗?

zhanglin711 回答:为什么将ANSI_WARNINGS ON设置为XML方法?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3133519.html

大家都在问