Dans SQL Server 2008 (et qui est l'un des très peu de nouvelles fonctionnalités liées à XML, je crois), vous pourriez écrire quelque chose comme:
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
mais je crains en 2005, a gagné L'utilisation de la variable sql: dans une instruction XML DML "insert" est nouvelle dans SQL Server 2008. Vous pouvez utiliser sql: variable dans d'autres endroits (par exemple replace value of
et autres) à partir de SQL Server 2005 et Je ne suis pas d'accord 10, donc en 2005,:. jusqu'à
Marc
PS 0% sûr si cela fonctionnera (ne pas 2005 à portée de main plus pour le tester), mais vous pouvez essayer:
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
Assurez votre variable @myInt
VARCHAR (MAX) et concaténer ensemble de la chaîne dans la Instruction .modify.
Quelle version de SQL Server travaillez-vous? –
sql 2005 SMSS 9.0 – Mike