我们有时在执行存储过程时收到以下消息,之后没有任何更改删除并重新执行存储过程它工作正常.
DBCORE INSERT失败,因为以下SET选项具有不正确的设置:'QUOTED_IDENTIFIER'.验证SET选项是否正确,以便与计算列和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引一起使用.
请帮助我们理解这一点.
Dan*_*man 26
QUOTED_IDENTIFIER是一个"粘性"选项,因此在运行时使用创建过程时生效的设置.由于没有进行任何过程更改,因此错误表明存储过程是使用创建的,QUOTED_IDENTIFIER OFF并且创建/删除了错误消息中提到的类型之一的索引.
从两个会话中重新创建或更改存储过程QUOTED_IDENTIFIER ON,ANSI_NULLS ON以避免问题继续进行.
我遇到了这个问题,所以我在 MS SQL 中将所有工作步骤创建到存储过程中。使用模板时,它自动具有以下内容
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
Run Code Online (Sandbox Code Playgroud)
如果有人在通过 Visual Studio 数据库项目部署后遇到此错误,则值得检查存储过程文件的属性。如果将其设置为“项目默认值”,则转至数据库项目的属性 >“项目设置”,然后单击“数据库设置”按钮。
您可以将这两个值(以及其他值)设置为默认打开,如下面的屏幕截图所示。
但是,只有当您对程序进行更改时,这才能解决问题;QUOTED_IDENTIFIER除非过程主体发生更改,否则架构比较和后续更新不会更改存储过程中的 。不过,它将防止问题在后续更新的架构中再次发生。
就我而言,以批量模式加载存储过程时,我必须在sqlcmd.exe命令行中添加-I参数。
| 归档时间: |
|
| 查看次数: |
25215 次 |
| 最近记录: |