さまざまなブログからいくつかの例と解説をスキャンしました。特定のノード/属性を選択するために sql:variable を使用する多くの例を見てきましたが、ノード選択のような単純なものを SQL 変数に置き換えることができるかどうかはわかりません. たとえば、次のような場合:
declare @NodeStartPoint varchar(255) = '/root/parent/child'
その後、次のようなクロス適用を使用する可能性があります。
cross apply MyXml.nodes(@NodeStartPoint)
明らかに、上記のクロス適用ノードの選択は機能しません。私も試しました:
cross apply MyXml.nodes('sql:variable(@NodeStartPoint)')
おそらく他のいくつかの奇妙な組み合わせも!
アイデアは、パラメータなどからノード選択を渡すことができるようにすることです.
http://blogs.msdn.com/b/mrys/とhttp://msdn.microsoft.com/en-us/library/ms186960%28SQL.90%29.aspxを調べ始めましたが、これまでのところ、私が達成しようとしていることの例が見つからないため、間違ったツリーを吠えていると思います! :)
どんなアイデアでもありがたく受け取った!!