Как читать XML в SQL Server?

В настоящее время я работаю с SQL Server 2012, который требует, чтобы я прочитал строку XML, которую можно прочитать, и вставил данные в таблицу с помощью хранимой процедуры.

DECLARE @TurnoverList VARCHAR(Max) = "<root><data><Value>1</Value><Value>3</Value><Value>2</Value><Value>4</Value></data></root>"
DECLARE @hDocTurnover INT

EXEC Sp_Xml_prepareDocument @hDocTurnover OUTPUT
    ,@TurnoverList

SELECT *
INTO #TempTurnover
FROM OpenXml(@hDocTurnover, 'root/data', 2) WITH (Value INT)

EXEC Sp_Xml_RemoveDocument @hDocTurnover

SELECT *
FROM #TempTurnover

Но это в настоящее время только одна запись

Value 
------
1

Всего 1 ответ


Если вы просто после значения каждого узла Value , вам будет лучше с:

--Note use of the CORRECT datatype. Use the xml datatype for XML, for a (n)varchar
DECLARE @XML xml = '<root><data><Value>1</Value><Value>3</Value><Value>2</Value><Value>4</Value></data></root>'

SELECT d.V.value('(./text())[1]','int') AS [Value]
FROM @XML.nodes('/root/data/Value') d(V);

DB <> Скрипки


Есть идеи?

10000