Ако вашият XML документ има XML пространства от имена, тогава трябва да ги вземете предвид във вашите заявки!
Така че, ако вашият XML изглежда като вашия пример, тогава имате нужда от:
-- define the default XML namespace to use
;WITH XMLNAMESPACES(DEFAULT 'bar')
SELECT
x.u.value('Name[1]', 'varchar(100)') as Name
from
@XMLDOC.nodes('/Feed/Product') x(u)
Или ако предпочитате да имате изричен контрол върху това кое XML пространство от имена да използвате (напр. ако имате няколко), използвайте префикси на XML пространство от имена:
-- define the XML namespace
;WITH XMLNAMESPACES('bar' as b)
SELECT
x.u.value('b:Name[1]', 'varchar(100)') as Name
from
@XMLDOC.nodes('/b:Feed/b:Product') x(u)