O Sql Server tem um problema ao converter o valor com notação científica de uma string para um inteiro, como aconteceria quando você executa sua consulta xpath, no entanto, ele pode fazer isso para
float
. Você poderia escrever sua consulta assim:
select @xml.value('sum(/Parent[@ID = "p"]/Child) cast as xs:long?', 'bigint')