在SQL Server 2008(这是极少数新的XML相关的功能之一,我相信),你可以写这样的:
DECLARE @holdxml xml
DECLARE @myInt xml
set @myInt = '<VehicleManufacturerID>abc</VehicleManufacturerID>'
SET @holdxml = (SELECT CAST(VehicleManufacturerXML as xml) FROM VehicleManufacturers WHERE VehicleManufacturerID = 496);
SET @holdxml.modify('insert sql:variable("@myInt") into (/VehicleManufacturers)[1]')
select @holdxml as x
,但我在2005年很害怕,这韩元't work(yet),AFAIK在“插入”XML DML语句中使用sql:变量是SQL Server 2008中的新增功能。从SQL Server 2005开始,您可以在其他地方使用sql:变量(例如replace value of
等) 。最多
马克
PS:好吧,所以在2005年,我不是10 0%知道这是否会工作(手头没有2005年再进行测试),但你可以尝试:
DECLARE @holdxml xml
DECLARE @myInt VARCHAR(MAX)
set @myInt = '<VehicleManufacturerID>abc</VehicleManufacturerID>'
SET @holdxml = (SELECT CAST(VehicleManufacturerXML as xml) FROM VehicleManufacturers WHERE VehicleManufacturerID = 496);
SET @holdxml.modify('insert ' + @myInt + ' into (/VehicleManufacturers)[1]')
select @holdxml as x
只是让你@myInt
变量VARCHAR(MAX)并连接在一起的字符串.modify语句。
什么版本的SQL Server你对付? – 2009-07-28 09:55:15
sql 2005 SMSS 9.0 – Mike 2009-07-28 09:56:10