Nå, dit XPath-udtryk her er "synderen":
query('//branch')
Dette siger:vælg alle
Hvad er der galt med denne forespørgsel her?
SELECT
XMLData.query('/library/books/book[@type=sql:variable("@genre")]//branch')
FROM dbo.TableA
Det ville hente alle
undernoder til
node, der har type="SF"
som en egenskab...
Hvad prøver du at opnå med din query()
, exist()
og værdi()
alle i samme udsagn?? Det kan sagtens gøres meget nemmere....
Også:Jeg tror, du misfortolker hvad .exist()
i SQL Server gør XQuery. Hvis du har din erklæring her:
SELECT (some columns)
FROM dbo.TableA
WHERE XMLData.exist('//book[@type = sql:variable("@genre")]') = 1
du beder dybest set SQL Server om at hente alle rækker fra dbo.TableA
hvor XML er gemt i XMLData
indeholder en XMLData
kolonnens indhold...