Sql Server ha un problema nel convertire il valore con la notazione scientifica da una stringa a un numero intero, come accadrebbe quando esegui la tua query xpath, tuttavia, può farlo per float
.
Potresti scrivere la tua domanda in questo modo:
select @xml.value('sum(/Parent[@ID = "p"]/Child) cast as xs:long?', 'bigint')