我希望在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,而不包括prolog。

思想?

有帮助吗?

解决方案

xml xsi 命名空间是您不必自己声明的唯一预定义命名空间。必须在每个查询中明确声明所有其他名称空间。

声明名称空间有两种方法:

  1. 通过XQuery中的 declare 语句。
  2. 通过TSQL语句中的WITH XMLNAMESPACES子句。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top