高分求教:如何向一个存储过程传递一个对象??

bein9 2003-10-09 08:38:57
sql server 2000

为了减少io,提高效率,希望能够把一批记录一次传递到一个存储过程,然后在过程中将记录一条一条写入目的表。
不知道有没有什么办法向一个存储过程传递一个对象或者批量写入记录。
望高人赐教,不胜感激!!!
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
学习中,帮你up
CrazyFor 2003-10-09
  • 打赏
  • 举报
回复
我觉得SQL分析XML的速度一定不会太快,有得有失.
愉快的登山者 2003-10-09
  • 打赏
  • 举报
回复
XML.
leus 2003-10-09
  • 打赏
  • 举报
回复
看来就是XML了。
leimin 2003-10-09
  • 打赏
  • 举报
回复
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
playyuer 2003-10-09
  • 打赏
  • 举报
回复
一样的!
pengdali 2003-10-09
  • 打赏
  • 举报
回复
用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, @doc

SELECT * FROM OPENXML (@idoc, '/电子病历/病案',2)
WITH (姓名 varchar(20)
,性别 varchar(2)
,出生日期 datetime
,婚姻 varchar(10)
,职业 varchar(50)
)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧