我正在尝试将 xpath 作为参数传递给查询。
declare @test as nvarchar(1000) = '(ns1:Book/Authors)[1]'
;with XMLNAMESPACES ('MyNameSpace:V1' as ns1)
select
b.XmlData.value(
'@test'
, 'nvarchar(100)') as QueriedData
from Books b
where b.BookID = '1'
上面的语句给出了以下错误。
XQuery [Books.XmlData.value()]: Top-level attribute nodes are not supported
尝试将其作为@test,而不是'@test'。并得到以下错误:
The argument 1 of the XML data type method "value" must be a string literal.
尝试使用 'sql:variable(@test)' 并得到这个错误:
XQuery [Books.XmlData.value()]: A string literal was expected
尝试将其作为'sql:variable(“@test”)'并将@test中的值显示为QueriedData,这是错误的
请告诉我我在这里缺少什么