SQL Server 2008:修改xml,使用值的值替换属性值

Tim*_*fey 4 xml sql-server-2008

我有一张桌子:

declare @Table table (XmlPart xml, Cnt int)
Run Code Online (Sandbox Code Playgroud)

XmlPart具有以下形式:

<Group count="0" />
Run Code Online (Sandbox Code Playgroud)

我想通过用Cnt列的值替换它来修改XmlPart.这就是我尝试的:

update @Table
set XmlPart.modify('replace value of (/Group/@count)[1] with sql:column(Cnt)')
Run Code Online (Sandbox Code Playgroud)

但解析器不理解我..

是否可以用表列替换xml的属性(或节点值)?

mar*_*c_s 6

你几乎做对了:-)

update @Table
set XmlPart.modify('replace value of (/Group/@count)[1] with sql:column("Cnt")')
Run Code Online (Sandbox Code Playgroud)

您需要将列名称sql:column放入双引号中...

请参阅sql:column XQuery函数上MSDN Docs.