更新XML属性

问题描述:

这是在存储过程中更新XML属性

@myname varchar(50) 

UPDATE temp_xmlloc 
SET myxml.modify('replace value of (/name/@id[.="XML"])[1] with "GK" ') 
WHERE name = @myname; 

在地方GK如果我需要给@myname我应该怎么办呢?

+0

** **什么数据库系统,以及哪个版本? * SQL *只是*结构化查询语言* - 许多数据库系统使用的语言,但不是数据库产品......这样的功能通常是特定于供应商的 - 因此我们确实需要知道**数据库系统**您正在使用.... – 2012-08-02 13:48:55

你可以使用sql:variable

UPDATE temp_xmlloc 
SET  myxml.modify('replace value of (/name/@id[.="XML"])[1] with sql:variable("@myname") ') 
where name = @myname; 
+0

XML数据类型方法“modify”的参数1必须是字符串文字。 //我得到这样的错误 – dennis 2012-08-02 12:55:05

+0

我没有将字符串分成两行,所以不会换行。尝试没有'+'的新版本? – Andomar 2012-08-02 12:57:45