用xml传递呢?DECLARE @idoc int,@doc varchar(8000)SET @doc ='
<?xml version="1.0" encoding="GB2312"?>
<电子病历>
   <病案 num="1">
      <姓名>梁景</姓名>
      <性别>女</性别>
      <出生日期>1985-7-12</出生日期>
      <婚姻>已婚</婚姻>
      <职业>工人</职业>
    </病案>
    <病案 num="2">
      <姓名>张路</姓名>
      <性别>女</性别>
      <出生日期>1985-7-12</出生日期>
      <婚姻>已婚</婚姻>
      <职业>工人</职业>
    </病案>
    <病案 num="3">
      <姓名>何江</姓名>
      <性别>男</性别>
      <出生日期>1985-7-12</出生日期>
      <婚姻>已婚</婚姻>
      <职业>工人</职业>
    </病案>
</电子病历>
'EXEC sp_xml_preparedocument @idoc OUTPUT, @docSELECT * FROM OPENXML (@idoc, '/电子病历/病案',2)
WITH (姓名 varchar(20)
,性别 varchar(2)
,出生日期 datetime
,婚姻 varchar(10)
,职业 varchar(50)
)

解决方案 »

  1.   

    create table InsetXMLtable (
    tablename varchar(50) ,
    colname varchar(50),
    primarykey char(2),
    type varchar(10),
    length int,
    [isnull] char(1),
    [default] varchar(100),
    descript varchar(500)
    )
    GO
    create proc usp_getXmltable
      @xmldoc text
    as
    set nocount on
    Declare @hdoc int
    begin
    exec sp_xml_preparedocument @hdoc output,@xmldoc
    insert into InsetXMLtable
    SELECT *  FROM OPENXML(@hDoc, '/xmltable/row', 1)
         WITH (  tablename varchar(50) '../tablename',
    colname varchar(50),
    primarykey char(2),
    type varchar(10),
    length int,
    [isnull] char(1),
    [default] varchar(100),
    descript varchar(500)
              ) exec sp_xml_removedocument @hdoc 
    end
    go
    declare @xmldoc varchar(2000)
    set @xmldoc='
    <xmltable>
    <tablename>store</tablename>
    <row colname="stor_id" primarykey="PK" type="char" length="4" isnull="N" default="" descript=""/>
    <row colname="ord_num" primarykey="PK" type="varchar" length="20" isnull="N" default="" descript=""/>
    <row colname="ord_date" primarykey="" type="datetime" length="8" isnull="N" default="" descript=""/>
    <row colname="qty" primarykey="" type="smallint" length="2" isnull="N" default="" descript=""/>
    <row colname="payterms" primarykey="" type="varchar" length="12" isnull="N" default="" descript=""/>
    <row colname="title_id" primarykey="PK" type="int" length="6" isnull="N" default="" descript=""/>
    </xmltable>'exec usp_getXmltable @xmldoc
    go
      

  2.   

    我觉得SQL分析XML的速度一定不会太快,有得有失.