I would like to have a few namespaces available by default when running an XQuery in SQL Server 2005, is this possible?
For example, I would like to do the following:
select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1
Without having to redeclare the na开发者_Python百科mespace each time, so that SQL will recognize nsp without me including the prolog each time.
Thoughts?
The xml
and xsi
namespaces are the only pre-defined namespaces that you do not have to declare yourself. All other namespaces must be explicitally declared in every query.
There are two ways to declare namespaces:
- via the
declare
statement inside the XQuery. - via the WITH XMLNAMESPACES clause on the TSQL statement.
精彩评论