UPDATE失败,因为以下SET选项具有不正确的设置:' ANSI_PADDING'

时间:2017-05-22 05:01:07

标签: sql sql-server set runtime-error ansi

运行更新语句时,我刚刚收到以下错误。我以前从未见过这个,并且来自Oracle背景,所以如果有人知道这个问题,我会很感激这个建议。我会继续研究。

  

Msg 1934,Level 16,State 1,Line 1 UPDATE失败,因为   以下SET选项的设置不正确:' ANSI_PADDING'。   验证SET选项是否正确用于索引视图和/或   计算列和/或筛选索引和/或查询的索引   通知和/或XML数据类型方法和/或空间索引   操作

2 个答案:

答案 0 :(得分:1)

我的会话中的

set ansi_padding on解决了这个问题。不确定为什么关闭它。

你可以通过运行这个可怕的查询来检查它是否打开或关闭,以解开存储会话属性的SS方法

DECLARE @options INT
SELECT @options = @@OPTIONS

PRINT @options
IF ( (1 & @options) = 1 ) PRINT 'DISABLE_DEF_CNST_CHK' 
IF ( (2 & @options) = 2 ) PRINT 'IMPLICIT_TRANSACTIONS' 
IF ( (4 & @options) = 4 ) PRINT 'CURSOR_CLOSE_ON_COMMIT' 
IF ( (8 & @options) = 8 ) PRINT 'ANSI_WARNINGS' 
IF ( (16 & @options) = 16 ) PRINT 'ANSI_PADDING' 
IF ( (32 & @options) = 32 ) PRINT 'ANSI_NULLS' 
IF ( (64 & @options) = 64 ) PRINT 'ARITHABORT' 
IF ( (128 & @options) = 128 ) PRINT 'ARITHIGNORE'
IF ( (256 & @options) = 256 ) PRINT 'QUOTED_IDENTIFIER' 
IF ( (512 & @options) = 512 ) PRINT 'NOCOUNT' 
IF ( (1024 & @options) = 1024 ) PRINT 'ANSI_NULL_DFLT_ON' 
IF ( (2048 & @options) = 2048 ) PRINT 'ANSI_NULL_DFLT_OFF' 
IF ( (4096 & @options) = 4096 ) PRINT 'CONCAT_NULL_YIELDS_NULL' 
IF ( (8192 & @options) = 8192 ) PRINT 'NUMERIC_ROUNDABORT' 
IF ( (16384 & @options) = 16384 ) PRINT 'XACT_ABORT'

答案 1 :(得分:0)

我运行了由SQL Server Studio生成的脚本,并出现错误“由于以下SET选项设置错误而导致插入失败:'ANSI_PADDING'”

我的解决方案是添加关键字“ GO”,并且脚本起作用。