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