您的位置:首页 > 数据库

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

2011-03-07 16:27 435 查看
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

 

 

 

 

 

 

======================================

单列表

 

 

DECLARE @XMLDocument XML
SELECT @XMLDocument='<Root>
<UserFlag>1002</UserFlag>
<UserFlag>1003</UserFlag>
<UserFlag>1005</UserFlag>
</Root>'

select   T.c.value('.[1]', 'int') as num
 from  @XMLDocument.nodes('/Root/UserFlag') as T(c)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml table sql c