gpt4 book ai didi

sql - 没有命名空间 SQL2008 的 XQuery 插入

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:56 27 4
gpt4 key购买 nike

<game xmlns="http://my.name.space" ></game>  

这是我的根元素。我已经编写了一个存储过程来向其中插入元素。总结存储过程,这里是SQL

UPDATE ChessGame SET GameHistory.modify('insert <move><player>black</player><piece>pawn</piece><start>E7</start><end>E6</end></move> as last into (/game)[0]') WHERE Id = @GameId;

现在,当 MSSQL 执行插入操作时,还会插入一个空命名空间,所以结果是这样的

<move xmlns="">
<player>black</player>
<piece>king</piece>
<start>E7</start>
<end>E6</end>
</move>

现在我已经尝试使用两者

WITH XMLNAMESPACES(DEFAULT 'http://my.name.space')

GameHistory.modify('declare default element namespace "http://my.name.space"; insert ...')

但我最终到处都是前缀,每个元素都有一个命名空间声明。

问题出现在缺乏逻辑来处理 MSSQL 放入的前缀的代码库中。最后我只想将一个新元素插入到我的 xml 根中并将命名空间留空(使用根默认值?)。我对此很陌生,但据我了解,如果我的根元素中有一个 namespace ,难道所有的子节点都不应该有一个默认的根 namespace 吗?

最佳答案

好的,这对我有用:

DECLARE @x XML;
SET @x = '<game xmlns="http://my.name.space" ></game>';

select @x

SET @x.modify(
' declare default element namespace "http://my.name.space";
insert <move><player>black</player><piece>pawn</piece><start>E7</start><end>E6</end></move> as last into (/*:game)[1]'
)

select @x

关于sql - 没有命名空间 SQL2008 的 XQuery 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380858/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com