Jag vet att svaret accepteras, men det finns faktiskt ett enklare sätt att göra det på, om det enda du behöver göra är att välja nodvärde. Använd bara *
som namnområdesnamn:
SELECT MessageXml
, MessageXml.value('(/*:Envelope/*:Body/*:FetchRequest/*:Contract/*:TransactionId)[1]'
, 'varchar(max)')
FROM dbo.Message