Eu sei que a resposta é aceita, mas na verdade existe uma maneira mais simples de fazer isso, se a única coisa que você precisa fazer é selecionar o valor do nó. Basta usar
*
como nome do namespace:SELECT MessageXml
, MessageXml.value('(/*:Envelope/*:Body/*:FetchRequest/*:Contract/*:TransactionId)[1]'
, 'varchar(max)')
FROM dbo.Message