質問

SQL Server 2005でXQueryを実行するときに、デフォルトでいくつかのネームスペースを使用できるようにしたいのですが、これは可能ですか?

たとえば、次のことをしたいです:

select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1

毎回名前空間を再宣言する必要がないため、SQLは毎回プロローグを含めずにnspを認識します。

思考?

役に立ちましたか?

解決

xml および xsi 名前空間は、自分で宣言する必要がない唯一の定義済みの名前空間です。他のすべての名前空間は、すべてのクエリで明示的に宣言する必要があります。

名前空間を宣言するには2つの方法があります:

  1. XQuery内の declare ステートメント経由。
  2. TSQLステートメントのWITH XMLNAMESPACES句を使用。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top