У меня есть этот xml:
DECLARE @x XML
SET @x =
'<data>
<add>a</add>
<add>b</add>
<add>c</add>
</data>';
Задача:
Я хочу перечислить a,b,c
.
подход 1:
SELECT s.value('.', 'VARCHAR(8000)') AS [ADD]
FROM @x.nodes('/data/add') AS t(s)
подход 2:
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @x
SELECT *
FROM OPENXML(@idoc, '/data/add', 2)
WITH ([add] NVARCHAR(MAX) '.')
оба из них дают мне:
вопрос:
который является предпочтительным способом?
Есть ли какие-либо преимущества последнего против прежнего (или наоборот)?