Sql server SQL Server 2014中的查询XML

Sql server SQL Server 2014中的查询XML,sql-server,xquery,Sql Server,Xquery,这是我的桌子 CREATE TABLE tab_customerxml ( id INT IDENTITY, xmldata XML ) 我加载了一个带有insert的xml 我想运行这个简单的查询 SELECT xmldata.query('/customer') FROM tab_customerxml WHERE id = 4; 但我得到了这个错误: 无法运行,因为以下集合选项的选择设置不正确 我不知道如何解决这个问题 谢谢请尝试运行

这是我的桌子

CREATE TABLE tab_customerxml 
(
    id INT IDENTITY, 
    xmldata XML
)
我加载了一个带有insert的xml

我想运行这个简单的查询

SELECT 
    xmldata.query('/customer')
FROM 
    tab_customerxml 
WHERE 
    id = 4;
但我得到了这个错误:

无法运行,因为以下集合选项的选择设置不正确

我不知道如何解决这个问题

谢谢

请尝试运行以下命令:

  • 放下你的桌子

    DROP TABLE tab_customerxml;
    
  • 使用以下设备上的正确设置重新创建:

    SET ANSI_NULLS ON
    SET QUOTED_IDENTIFIER ON
    SET ANSI_PADDING ON
    
    CREATE TABLE tab_customerxml 
    (
       id INT IDENTITY, 
       xmldata XML
    )
    
  • 现在重试您的查询

    SELECT xmldata.query('/customer')
    FROM tab_customerxml 
    WHERE id = 4;
    

这有帮助吗?

旁注:由于您的
id
列的类型为
int
,您应该在
WHERE
子句中使用此符号:
WHERE id=4
-不要添加那些不必要的单引号-这使我们的
'4'
成为一个字符串,必须隐式转换回
int
。。。。。如果它是一个
int
-不要用任何单引号开始,我更改了其中的id=4,但不适用于相同的@marc_salso,没有where语句,我总是得到相同的错误,谢谢它的工作。但我不明白到底是什么原因problem@Genny:错误清楚地表明:
QUOTED\u IDENTIFIER
的设置错误。不知道为什么-但是添加这三个
SET。。。。在创建表格之前,请在
行中为我工作