在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