使用SQL Server Management Studio,当我尝试更改存储过程或用户定义的函数时,我收到以下错误:
Msg 9455,Level 16,State 1,Procedure AuditDDLChanges,Line 18
XML解析:第34行,第28个字符,非法限定名字符
即使我没有对代码进行任何更改,也会发生此错误。我所做的只是右键单击对象资源管理器中的存储过程或UDF,然后选择"修改" (或者#34;脚本存储过程为">" ALTER To">"新查询编辑器窗口")。
如果不对生成的脚本进行任何更改,我就会收到上述错误。
现在这里有一个非常幽灵般的部分:我的所有对象都不会发生这种情况,而且,如果我自己执行存储过程中的代码,一切正常。
任何建议都非常感谢!感谢。
答案 0 :(得分:0)
原来另一位管理员用户创建了一个名为“AuditDDLChanges”的数据库触发器。此触发器将侦听DDL_PROCEDURE_EVENTS,DDL_TABLE_VIEW_EVENTS,DDL_TRIGGER_EVENTS和DDL_FUNCTION_EVENTS,并将记录插入到每个此类事件的日志表中。
由于某种原因,此触发器的代码无法解析从EVENTDATA()函数返回的某些XML。
禁用触发器后,我不再收到上述错误,这就是我将此问题标记为已回答的原因。