【发布时间】:2009-11-11 09:08:54
【问题描述】:
我有一个存储过程,它接受一个 XML 参数并将数据插入到多个表中。如果我使用 SSMS 查询窗口将存储过程运行到数据库中,一切正常。但是,我们有一个自定义安装程序,用于将存储过程部署到数据库,使用此程序时,sp 执行失败并出现以下错误:
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 选项中使用这些设置,但似乎确实如此。 我只是希望有人确认确实如此(如果有办法,我很想听听,但我不抱希望)
不幸的是,目前我无法更改安装程序,因此我正在考虑不得不退回几周的工作;所以如果我必须这样做,我想确定(并有一些证据支持我)这是唯一的选择
【问题讨论】:
标签: sql sql-server xml tsql stored-procedures