さて、あなたの XPath 式が「原因」です:
query('//branch')
プレ>つまり:すべてを選択
<ブランチ>コード> ドキュメント全体のノード。それはあなたが指示したことを実行しているだけです....
このクエリの何が問題になっていますか??
SELECT XMLData.query('/library/books/book[@type=sql:variable("@genre")]//branch')FROM dbo.TableA
プレ>それはすべての
を取得します
のサブノード
type="SF"
を持つノード 属性として....
query()
で何を達成しようとしていますか ,exist()
およびvalue()
すべて同じステートメントで??おそらく、もっと簡単にできるはずです....また:
.exist()
を誤解していると思います SQL Server では XQuery が行います。ここに声明がある場合:SELECT (いくつかの列) FROM dbo.TableA WHERE XMLData.exist('//book[@type =sql:variable("@genre")]') =1
プレ>基本的に、
dbo.TableA
からすべての行を取得するように SQL Server に指示しています。XMLData
に格納されている XMLを含む ノード - テーブルから行を選択しています - NOT
XMLData
への選択の適用 コラムの内容...