tengo unas pocas cosas xml:SQL Server: OPENXML vs SELECT..FROM cuando se trata de XML?
DECLARE @x XML
SET @x =
'<data>
<add>a</add>
<add>b</add>
<add>c</add>
</data>';
Tarea:
Quiero que la a,b,c
.
enfoque 1:
SELECT s.value('.', 'VARCHAR(8000)') AS [ADD]
FROM @x.nodes('/data/add') AS t(s)
enfoque 2:
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @x
SELECT *
FROM OPENXML(@idoc, '/data/add', 2)
WITH ([add] NVARCHAR(MAX) '.')
ambos me dan:
q Pregunta:
¿cuál es la forma preferida?
¿Hay alguna ventaja de esta última frente a la anterior (o viceversa)?
yo personalmente prefiero el enfoque # 1 - es mucho más intuitivo sa para mí, y que no requiere los pasos adicionales de 'sp_xml_preparedocument' etc - simplemente más fácil de usar –
@marc_s Y junto con eso ... significa # 1 se puede utilizar en Vistas y tal. –