Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête SQL Server XML avec plusieurs espaces de noms

Je sais que cette réponse est acceptée, mais il existe en fait une manière plus simple de le faire, si la seule chose que vous devez faire est de sélectionner la valeur du nœud. Utilisez simplement * comme nom d'espace de noms :

SELECT MessageXml
     ,  MessageXml.value('(/*:Envelope/*:Body/*:FetchRequest/*:Contract/*:TransactionId)[1]'
                       , 'varchar(max)')
FROM   dbo.Message