当前位置:首页 » 存储配置 » 批量插入数据存储过程

批量插入数据存储过程

发布时间: 2022-04-27 20:43:26

㈠ 如何用sql语句将数据批量插入数据库

这种情况使用xml来进行批量插入.
1.asp.net页面上抓取数据,转换成xml字符串
2.将这个字符串作为参数传给存储过程
3.存储过程里,将这个xml读取成临时表
4.整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到asp.net后台,让后台进行处理异常.
您用游标或asp.net代码来循环,速度会比较慢的.

㈡ 如何向mysql中批量插入数据

drop procere if exists s_card;
delimiter $$
CREATE PROCEDURE s_card()
BEGIN
DECLARE j INT(11);
loop1: WHILE j<=1000 DO
insert INTO `tablename`(xxxxxx) values (xxx);
SET j=j+1;
END WHILE loop1;
END$$
delimiter ;
把上面存储过程运行一下,输入 call s_card()可以循环插入1000条数据
如果要指定输入条数可以把数字从外界传入

㈢ mysql存储过程怎样批量插入数据

一下代码运行通过:

delimiter$$;
createprocerelucia_proc16(countint)
begin
DECLAREname_procVARCHAR(20)CHARACTERSETutf8;
DECLAREsex_procVARCHAR(4)CHARACTERSETutf8;
DECLAREage_procINT(10);
DECLAREclass_procVARCHAR(20)CHARACTERSETutf8;
DECLAREAddr_procVARCHAR(50)CHARACTERSETutf8;
DECLAREiINT;
seti=1;
setsex_proc='女';
setage_proc=20;
setclass_proc='山治班';
setAddr_proc='北京市朝阳区';
whilei<countdo
setname_proc=CONCAT('露西亚',i);
insertintostudents(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
seti=i+1;
endwhile;
end
$$;
delimiter;

代码功能:

传入一个行数,控制插入多少条数据

运行效果:

㈣ 如何实现数据库的批量插入与更新~~

干嘛弄这么麻烦啊?数据量很大吗?要是很大的话才需要你说的那种方式做压缩.然后,你需要对得到的dataset根据其字段名组合成sql
更新到本地数据库.但是这个台麻烦了.
简单的办法是.在本地数据库B上建立对远程数据库A的DBlink.然后对远程数据库上的表在本地建立别名.
那么你访问别名就和访问本地表一样简单.只要你会sql
搞个数据库的批量本地插入还是很简单的.因为不知道你是什么数据库.因此你可以插下对应数据库DBLINk的资料.不过这种方式就是没法对数据压缩.可能会占用点带宽

㈤ oracle存储过程怎样批量插入新数据

需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);

存储过程实现
create or replace procere proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;

begin
proc_casekey_upstate();
end;

测试发现生成一千万条数据用了14分钟左右,性能还是可以了,如果先去掉TMP_NUM_STATUS_ID的外键估计更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from al connect by level <= 1000000;

㈥ Oracle 批量插入数据怎么做

一个例子你看看

createorreplaceprocerep_testis
v_dayvarchar2(20);
nextdayvarchar2(20);
cur_valuenumber;
yes_valuenumber;
thismonth_totalvaluenumber;
lastmonth_totalvaluenumber;
inumber;
tempdayvarchar2(20);
day_countinteger;
begin
executeimmediate'truncatetableDM_KPID_IW_AREA';
v_day:='20070101';
--lastmonth_totalvalue:=0;
forkin0..11loop
tempday:=to_char(add_months(to_date(v_day,
'yyyymmdd'),
k),
'yyyymmdd');
yes_value:=0;
thismonth_totalvalue:=0;

--这里好像有一个比较方便的函数吧,记不清了
day_count:=to_char(last_day(to_date(tempday,'yyyymmdd')),'dd');

foriin0..day_count-1loop
nextday:=to_char(to_date(tempday,'yyyymmdd')+i,
'yyyymmdd');
cur_value:=trunc(dbms_random.value(1,100),0);
thismonth_totalvalue:=thismonth_totalvalue+cur_value;

begin
selectt.thismonth_totalvalue
intolastmonth_totalvalue
fromdm_kpid_iw_areat
wheret.day_id=
--考虑如3月30日之类这样的情况,前一月没有对应的日子的情况,
--如果此时上月值为0的话,则应该为:
--to_char(add_months(to_date(nextday,'yyyymmdd'),-1),
--'yyyymm')||substr(nextday,7,2);
to_char(add_months(to_date(nextday,'yyyymmdd'),-1),
'yyyymmdd');
exception
whenno_data_foundthen
lastmonth_totalvalue:=0;
end;

insertintodm_kpid_iw_area
(day_id,
cur_value,
yes_value,
thismonth_totalvalue,
lastmonth_totalvalue)
values
(nextday,
cur_value,
yes_value,
thismonth_totalvalue,
lastmonth_totalvalue);
yes_value:=cur_value;
commit;
endloop;
endloop;
end;

㈦ 怎么写存储过程,向数据库中批量插入数据

  1. 用循环语句生成字段值insert

  2. SQL 如下:

createprocereInsertTest

as

begin

declare@iint

declare@svarchar(20)

set@i=1

while@i<=100

begin

select@s=cast(@iASvarchar(20))

insertintotest(A,B,C,D)VALUES('a'+@s,'b'+@s,'ccccc','ddddd')

SET@i=@i+1

end

end

㈧ 存储过程批量插入数据问题

create proc pc_Text
@number_star int,
@number_end int
as
declare @int int
set @int=@number_end-@number_star+1
while(@int>0)
begin
select @int= count(1) from Text where aNumber1=@number_star
if(@int=1) --如果存在变化就不插入
begin
set @number_star=@number_star+1
set @int=@number_end-@number_star+1

end
else
begin
insert into Text value(@number_star ,...)
set @number_star=@number_star+1
set @int=@number_end-@number_star+1

end
end

㈨ 求批量插入存储过程 首先是多表查出 多行数据 然后批量将查询出来的信息插入到 有主子关系的两张表

这个有点困难,可以说是非常困难,因为有主子关系存在,而前面的多表你又没有说明其关系,不过大概可以给你个思路
insert into tablemain select columnlist from queryA --select 可以是一个查询,表关联查询也行,保证columnlist和主表的列一致
insert into tabledetail select columnlist from queryB

热点内容
服务器地址如何推送给客服 发布:2024-11-18 11:46:27 浏览:221
android滑动菜单左右 发布:2024-11-18 11:45:45 浏览:653
安卓如何把手机短信导入电脑 发布:2024-11-18 11:32:44 浏览:297
如何天选2查看电脑配置 发布:2024-11-18 11:32:36 浏览:421
phpinclude目录 发布:2024-11-18 11:29:38 浏览:722
西门子hmi屏反编译软件 发布:2024-11-18 11:29:36 浏览:763
安卓机如何看微信撤回消息 发布:2024-11-18 11:25:08 浏览:570
解压循环动画创意c4d 发布:2024-11-18 11:20:20 浏览:932
phpcurlcookie 发布:2024-11-18 11:20:10 浏览:78
橙子生存之旅服务器ip 发布:2024-11-18 11:17:23 浏览:812