Sql server TSQL选择整个列作为XML

Sql server TSQL选择整个列作为XML,sql-server,xml,tsql,Sql Server,Xml,Tsql,希望这不是一个太愚蠢的问题。我一直在寻找答案 假设我有一张这样的桌子: MyTable: Name NVARCHAR(25) Data XML 如何选择整个列值作为XML declare @XmlVar xml = (select top 1 Data from MyTable) 似乎不允许以后对该xml进行操作 declare @XmlVar xml = (select top 1 Data from MyTable FOR XML AUTO) 似乎附加了额外的节点(…)结果是我

希望这不是一个太愚蠢的问题。我一直在寻找答案

假设我有一张这样的桌子:

MyTable

Name   NVARCHAR(25)
Data   XML
如何选择整个列值作为XML

declare @XmlVar xml = (select top 1 Data from MyTable)
似乎不允许以后对该xml进行操作

declare @XmlVar xml = (select top 1 Data from MyTable FOR XML AUTO)

似乎附加了额外的节点(

结果是我没有指定所需的名称空间,因此Modify语句不起作用

因此:

很好

@XmlVar.modify('declare default element namespace "MyNameSpaceUrl";
delete /RootNode[1]')
当我指定MyTable.Data中描述的默认元素名称空间时,此选项有效


希望这能在将来为其他人节省一些时间。

用于XML自动的指令
用于将非XML数据转换为XML。这绝对不是你想要的。它不允许你做什么样的操作?@JonathanAllen set@XmlVar.modify('insert…')不会影响它:(
@XmlVar.modify('declare default element namespace "MyNameSpaceUrl";
delete /RootNode[1]')