Diciamo Ho le seguenti due pezzi di XML nel mio databaseUnione di XML in uno SQL Server
<!-- XML 1 -->
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 1 c value</item>
</pairs>
<!-- XML 2 -->
<pairs>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 1 e value</item>
</pairs>
Questi dati vengono memorizzati in due tabelle separate utilizzando il XML
tipo di dati, inoltre questa colonna XML è legata ad un schema che descrive il formato del previsto ad esempio XML
[PairData] [xml](CONTENT [foo].[Pairs]) NULL
All'interno di una procedura/funzione memorizzata vorrei unire questi due strutture XML in quanto segue:
articolia, b
dal secondo pezzo di XML che abbiamo preso::
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 2 e value</item>
</pairs>
articoli Così, dal primo pezzo di XML che abbiamo preso
c, d, e
Si noti che i due pezzi di XML hanno un elemento comune, con una chiave di:
c
in questo scenario il valore da XML 2 deve essere utilizzato nella fusione xml (scartando il valore da xml 1). Un altro caso è che XML 1 o 2 potrebbe essere NULL, quindi il processo di unione dovrebbe gestirlo e restituire semplicemente l'altro. O entrambi potrebbero essere NULL, nel qual caso viene restituito NULL.
Per inciso, nella nostra attuale implementazione restituiamo entrambi i documenti XML dal DB e facciamo l'unione nel codice. Tuttavia, preferiremmo che questa unione fosse eseguita all'interno del DB poiché più processi non correlati stanno chiamando questo proc.
La risposta dipende dalla memorizzazione dei dati. (ad esempio, la tua fonte è una tabella, una colonna xml o una stringa di caratteri). Sarebbe bello se tu potessi fornire più informazioni. –
Applausi per il commento, domanda aggiornata. – MrEyes