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



这是Insert语句:

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

最佳答案

尝试使用.query()运算符而不是.value()-像这样:

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

也许可以,因为.query()运算符按定义返回了XML片段。

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

09-29 21:09