非中文排序规则下对XML数据类型转换的一个问题

     随着SQL Server 2005/2008XML数据类型的支持,越来越多的应用程序开始使用这一新功能。也因为这样,我们可能会遭遇许多在处理XML数据类型时的问题。比较典型的一个是,我们不能在SQL Server 2005XQuery中,使用XML数据类型的变量,但很幸运的是,这一问题,在2008中得到了支持,可能有些朋友不明白文字描述的问题,那么下面我使用一个例子来说明这个问题(这个问题不是本文讨论的重点内容,但比较典型,所以顺便提出来)。

 

假设有这样2XML数据如下:

 

--------------------------------------------------------------------------------

declare @x1 as xml

declare @x2 as xml

 

select

   @x1 = N'

<root>

   <node id="2">value2</node>

   <node id="3">value3</node>

</root>

',

   @x2 = N'

<node id="1">value1</node>

'

  -----------------------------------------------------------------------------------

 

我们需要把@x2的值插入到@x1里,得到下面的结果:

--------------------------------------------------------------------------------
<root>

      <node id="1">value1</node>

      <node id="2">value2</node>

      <node id="3">value3</node>

</root>
--------------------------------------------------------------------------------

那么我们可以使用如下的两种方法:

--------------------------------------------------------------------------------


--2005/2008

declare

      @x1 xml,

      @x2 xml

 

select

      @x1 = N'

<root>

      <node id="2">value2</node>

      <node id="3">value3</node>

</root>',

      @x2 = N'

      <node id="1">value1</node>'

     

     

--处理
if object_id('tempdb.dbo.##t') is not null

      drop table ##t

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值