Wiem, że odpowiedź jest akceptowana, ale tak naprawdę jest prostszy sposób na zrobienie tego, jeśli jedyne, co musisz zrobić, to wybrać wartość węzła. Po prostu użyj *
jako nazwa przestrzeni nazw:
SELECT MessageXml
, MessageXml.value('(/*:Envelope/*:Body/*:FetchRequest/*:Contract/*:TransactionId)[1]'
, 'varchar(max)')
FROM dbo.Message