客户端批量数据插入数据库???

ysc1981 2006-08-09 06:02:26
我在客户端里面产生的数据,比如在网格里面有十行的数据,我要把它批量的插入的数据库里面,而不是循环一次一条的插入应该怎么做?

我是有一个想法,把这十行的数据组成一个字符串传给存储过程,在存储过程里面在把他分解成十行数据,也就是在存储过程里面来循环插入,不知道有没有具体的做法,SQL不支持数组,要不然就可以用数组处理了。

不知道各位大哥能不能给我一个比较好的思路
...全文
285 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2006-08-11
  • 打赏
  • 举报
回复
生成SQL语句一次插入.

比如表格里有数据

aa bb cc
dd ee ff

按照你的格式约定,生成
SQL="INSERT tb (a,b,c) ";
SQL+="SELECT 'aa','bb','cc'";
SQL+="UNION ALL SELECT 'dd','ee','ff'";
生成这样的语句后执行
breakfast 2006-08-11
  • 打赏
  • 举报
回复
记号
ysc1981 2006-08-10
  • 打赏
  • 举报
回复
那如果不这样做,要怎么做效率才会比较高呢
OracleRoob 2006-08-09
  • 打赏
  • 举报
回复
如果确实需要这样处理,可以在前台先生成一个串。

规则是:

(1)同一条记录内部各字段用逗号分隔
(2)不同记录用分号分隔

在后台循环拆分


下面是一个拆分函数的例子:


/*
功能:实现split功能的函数
*/

create function fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as

begin
declare @i int

set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)

while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))

set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end

if @inputstr <> '\'
insert @temp values(@inputstr)

return
end



OracleRoob 2006-08-09
  • 打赏
  • 举报
回复
这样循环处理的效率不一定高。

22,210

社区成员

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

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