это мой xml
<root>
<children>
<child id = "1">
<description>This is child 1</description>
</child>
<child id = "2">
<description>This is child 2</description>
</child>
<child id = "3">
<description>This is child 3</description>
</child>
</children>
</root>
Я пытаюсь обновить таблицу с именем Child, в которой есть столбцы «ID» и «Описание». В таблице уже есть значения столбца ID, но описание пустое. Мне нужно обновить это описание по идентификатору из приведенного выше XML-файла.
Я попытался выполнить OPENXML со значением флага 2 (ориентированным на элементы) и смог получить все описания. Но я не знаю, как получить описания на основе значений идентификатора, используя предложение where в OPENXML.
Я использую базу данных SQL Server 2008.
(Будет ли OPENXML работать и с SQL Server 2005?)
Это то, что я пытался сделать:
DECLARE @idoc int DECLARE @doc xml
select @doc= c from openrowset(bulk 'C:\Test.xml',single_blob) as temp(c)
exec sp_xml_preparedocument @idoc output, @doc
SELECT * FROM OPENXML (@idoc, '/root/children/child', 2)
WITH (summary varchar(1000)) descr
EXEC sp_xml_removedocument @idoc
Заранее спасибо Ник
p.s. Структуру xml изменить нельзя. Мне нужно обойти это ограничение.
<child id = "1">
с двойными кавычками. Это опечатка или xml действительно выглядит так? - person Mikael Eriksson   schedule 23.02.2011