利用XML转换为table实现在SQL参数中传递表结构

SQL 2005中,通常会用到在SQL参数中传递表结构,最简单的办法是利用XML转换为table

ExpandedBlockStart.gif 代码
DECLARE      @h   INT ,
    
@XML   VARCHAR ( 8000 ),
    
@2k5  XML

SELECT      @XML   =      '
            <jrt>
                <item>
                    <id>11</id>
                    <name>CS Tester</name>
                    <company>EEE</company>
                    <phone>555-555-1234</phone>
                </item>
                <item>
                    <id>22</id>
                    <name>CS Tester</name>
                    <company>EEE</company>
                    <phone>555-555-1234</phone>
                </item>
            </jrt>
        
' ,
    
@2k5   =   @XML


SELECT     T.c.query( ' id ' ).value( ' .[1] ' ' varchar(100) ' as  id,
        T.c.query(
' name ' ).value( ' .[1] ' ' varchar(50) ' ) as name,
        T.c.query(
' company ' ).value( ' .[1] ' ' varchar(50) ' ) as company,
        T.c.query(
' phone ' ).value( ' .[1] ' ' nvarchar(50) ' as  phone
FROM      @2k5 .nodes( ' /jrt/item ' AS  T(c)



 结果是:

id         name       company    phone
---------- ---------- ---------- ----------
11         CS Tester  EEE        555-555-12
22         CS Tester  EEE        555-555-12

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值