У меня есть эта T-SQL скрипт:Чтение XML-данных в хранимой процедуре в SQL Server
DECLARE @idoc int
DECLARE @doc nvarchar(200)
SET @doc ='<ArrayOfString>
<string>AL</string>
<string>DZ</string>
</ArrayOfString>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;
select *
FROM OPENXML (@idoc, '/ArrayOfString',2)
WITH (string varchar(50))
EXEC sp_xml_removedocument @idoc
Это хранимая процедура. Я отправляю ему некоторый сериализованный xml (в этом варианте я объявляю его как жесткий код).
Я хочу получить все значения элементов <string>
. В этом варианте это должно быть: AL
и DZ
, но я получаю только «AL». Что это неправильно в моем скрипте?
Thanks.It в вариант работы хорошо! Но что такое «T.C.value» и T (C) в вашем коде? – IFrizy
"T (C)" является псевдонимом для "@ xml.nodes ('/ ArrayOfString/string')" в последнем утверждении. – somesh
Хорошо! Но если это псевдоним, почему мы пишем «T.C.value»? Извините, если его глупый вопрос! :) – IFrizy