Saya tahu jawaban itu diterima, tetapi sebenarnya ada cara yang lebih sederhana untuk melakukannya, jika satu-satunya hal yang perlu Anda lakukan adalah memilih nilai simpul. Cukup gunakan *
sebagai nama namespace:
SELECT MessageXml
, MessageXml.value('(/*:Envelope/*:Body/*:FetchRequest/*:Contract/*:TransactionId)[1]'
, 'varchar(max)')
FROM dbo.Message