用XQuery替换SQL Server中的xml命名空间前缀
我在现有的SQLServer2005数据库表中有一个xml结构,定义了一个特定的名称空间,我需要查询出xml,在此过程中,将名称空间前缀更改为默认名称空间。旧xml在根节点和子节点上定义了名称空间,我知道如何很容易地替换根节点,但子节点的名称空间却没有 当前数据:用XQuery替换SQL Server中的xml命名空间前缀,sql,sql-server,database,sql-server-2005,xquery,Sql,Sql Server,Database,Sql Server 2005,Xquery,我在现有的SQLServer2005数据库表中有一个xml结构,定义了一个特定的名称空间,我需要查询出xml,在此过程中,将名称空间前缀更改为默认名称空间。旧xml在根节点和子节点上定义了名称空间,我知道如何很容易地替换根节点,但子节点的名称空间却没有 当前数据: <sg:Settings xmlns:sg="uri:mynamespace"> <sg:SomeData xmlns:sg="uri:mynamespace"/> </sg:Settings&g
<sg:Settings xmlns:sg="uri:mynamespace">
<sg:SomeData xmlns:sg="uri:mynamespace"/>
</sg:Settings>
使用SQL:
WITH XMLNAMESPACES
('uri:mynamespace' as sg)
SELECT
settingsNode.query('<Settings xmlns="uri:mynamespace"> { sg:SomeData } </Settings> ')
FROM
SettingsTable CROSS APPLY
SettingsXml.nodes('/sg:Settings') T(settingsNode)
使用xmlnamespace的
('uri:mynamespace'作为sg)
挑选
setingsnode.query(“{sg:SomeData}”)
从…起
设置稳定的交叉应用
SettingsXml.nodes('/sg:Settings')T(settingsNode)
我可以得到以下信息:
<Settings xmlns="uri:mynamespace">
<sg:SomeData xmlns:sg="uri:mynamespace"/>
</Settings>
但我想知道:
<Settings xmlns="uri:mynamespace">
<SomeData/>
</Settings>
是否有一种使用SQL XQuery合并名称空间的方法?如果您想用空格替换它
我要相信你的话,因为我为这个项目工作的项目已经很久了。
update tbl_Archive set XML.modify('delete /*:Document/*:Volume[text()]/@xmlns:sg')