我有一个存储过程,它接收一个XML参数并将数据插入到多个表中。如果我在数据库中使用SSMS查询窗口运行存储过程,一切都正常。然而,我们有一个自定义安装程序用于部署存储过程到数据库,当使用此程序时,执行存储过程会失败,并出现以下错误:
INSERT failed because the following SET options have incorrect settings:
'ANSI_NULLS, QUOTED_IDENTIFIER'. Verify that SET options are correct for use with
indexed views and/or indexes on computed columns and/or query notifications
and/or xml data type methods.
在存储过程中编写脚本时,自定义安装程序未使用正确的设置。
在sp中设置这些(SET ARITHABORT ON; SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON;)没有效果:
我也尝试在代码中调用sp之前为开放连接设置这些选项。这同样没有预期效果。
似乎在运行到数据库中的sp时,与数据库的连接上的设置是最重要的,而不是使用sp时的设置。
我已经在SSMS选项中尝试了这些设置,并且似乎确实如此。我只想确认这肯定是事实(如果有解决方法,我很乐意听取,但我并不抱太大希望)
不幸的是,目前对安装程序进行更改不是我的选择,因此我正在考虑回滚几周的工作;因此,如果我必须这样做,我希望非常确定(并有一些证据支持),这是唯一的选择。