Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用XQuery替换SQL Server中的xml命名空间前缀_Sql_Sql Server_Database_Sql Server 2005_Xquery - Fatal编程技术网

用XQuery替换SQL Server中的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

我在现有的SQLServer2005数据库表中有一个xml结构,定义了一个特定的名称空间,我需要查询出xml,在此过程中,将名称空间前缀更改为默认名称空间。旧xml在根节点和子节点上定义了名称空间,我知道如何很容易地替换根节点,但子节点的名称空间却没有

当前数据:

<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')