Ho questo xml:SQL Server: OPENXML rispetto a SELECT..FROM quando si ha a che fare con XML?
DECLARE @x XML
SET @x =
'<data>
<add>a</add>
<add>b</add>
<add>c</add>
</data>';
Task:
voglio elencare il a,b,c
.
approccio 1:
SELECT s.value('.', 'VARCHAR(8000)') AS [ADD]
FROM @x.nodes('/data/add') AS t(s)
approccio 2:
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @x
SELECT *
FROM OPENXML(@idoc, '/data/add', 2)
WITH ([add] NVARCHAR(MAX) '.')
entrambi mi danno:
q Domanda:
che è il modo preferito?
È stato rilevato qualche vantaggi di quest'ultima contro l'ex (o viceversa)?
Io personalmente preferisco l'approccio # 1 - è sa molto più intuitivo da me, e non richiede i passaggi aggiuntivi di 'sp_xml_preparedocument' ecc - semplicemente più facile da usare –
@marc_s e insieme a quella ... significa # 1 può essere utilizzato in Vista e così via. –