如何解决“选择失败,因为以下 SET 选项的设置不正确:'ANSI_PADDING'。”错误
Posted
技术标签:
【中文标题】如何解决“选择失败,因为以下 SET 选项的设置不正确:\'ANSI_PADDING\'。”错误【英文标题】:How to workaround "SELECT failed because the following SET options have incorrect settings: 'ANSI_PADDING'. " error如何解决“选择失败,因为以下 SET 选项的设置不正确:'ANSI_PADDING'。”错误 【发布时间】:2019-07-24 02:39:27 【问题描述】:当我尝试在 SET ANSI_PADDING OFF 之后运行“创建表”sql 语句时,我在 sql server 2014 (SP2) 中遇到错误。该语句失败并显示错误消息
“消息 1934,级别 16,状态 1,过程日志,第 7 行 SELECT 失败,因为以下 SET 选项的设置不正确:'ANSI_PADDING'。"
这曾经可以正常工作(尽管我有一段时间没有在我的 sql server 实例上明确尝试过)。
-- 产生错误的代码: 使用测试 设置 ansi_padding 关闭 创建表 test_ap3 (i int)
-- 运行良好的代码: 使用测试 设置 ansi_padding 创建表 test_ap3 (i int)
注意:带有“set ansi_padding off”的创建表在其他 sql server 上运行良好(我最近在 sql server 2014 SP3 标准版和 sql server 2016 上尝试过)。 我尝试在本地服务器上创建一个新数据库,但新数据库上没有出现此问题。两个数据库的选项设置相同。旧数据库的兼容性级别设置为 2012,但即使我将其更改为 2014,问题仍然存在。
【问题讨论】:
为什么需要set ansi_padding off
上桌?这也可能有帮助:social.msdn.microsoft.com/Forums/sqlserver/en-US/…
感谢您的链接,但它无助于解释或解决问题。我确实知道 ANSI_PADDING 已被弃用,但它尚未被删除,所以它应该仍然有效。
您根据链接检查了数据库上没有 DDL 触发器?您具体需要ansi_padding off
做什么?
【参考方案1】:
这个问题原来是由数据库级触发器“for create table”中的代码引起的。触发器有带xml操作的代码,如果ANSI_PADDING关闭,xml操作会失败!
【讨论】:
以上是关于如何解决“选择失败,因为以下 SET 选项的设置不正确:'ANSI_PADDING'。”错误的主要内容,如果未能解决你的问题,请参考以下文章