想要在SQL Server 2014表中存储XML并在其上应用select

Swa*_*ale 5 xml sql-server sql-server-2014

在for for for XML中有数据,我想将该XML存储在SQL Server表中.我创建了一个数据类型列,xml并尝试将我的XML数据存储在新创建的列中,但是我收到了一个错误INSERT:

VALUE方法中使用的数据类型"xml"无效.

这是Insert声明:

INSERT INTO UserDeatailtbl(RoleXml)
    SELECT Y.ID.value('./RoleXml[1]', 'XML') 
    FROM @UserDetailsXML.nodes('UserDetails/UserDetailsRow') AS Y(ID) 
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 3

尝试使用.query()运算符而不是.value()- ,如下所示:

INSERT INTO UserDetailtbl(RoleXml)
    SELECT ID.query('.') 
    FROM @UserDetailsXML.nodes('UserDetails/UserDetailsRow/RoleXml') AS Y(ID) 
Run Code Online (Sandbox Code Playgroud)

也许这会起作用,因为.query()操作符根据定义返回一个 XML 片段。

如果它不起作用,我们需要更多地了解您的 XML 结构 - 您能否向我们展示存储在变量中的 XML 示例@UserDetailsXML?您想插入其中的哪一部分UserDetailTbl.RoleXml