当前位置:首页 » 服务存储 » 存储过程大批量数据入库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程大批量数据入库

发布时间: 2022-05-13 15:09:39

1. sqlserver 存储过程大批量数据插入

可使用Merge Into 语句完成操作。
具体用法参考文章:http://www.cnblogs.com/biwork/p/3370335.html

2. 如何将存储过程中的数据批量插入数据库存中(C#)

存储过程还有这么个调用的,行不行啊?我到要试试看
补充:
参考:http://blog.csdn.net/itblog/article/details/752869

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

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

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

  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

5. 跪求大神解答 sql server如何利用存储过程批量导入更新数据

做不到,存储过程只是代码,没办法实现界面,你说的那些功能与存储过程基本无任何关系,需要借助于其它的开发语言,比如C#、DELPHI、VB和JAVA之类的。

6. 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;

代码功能:

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

运行效果:

7. 如何解决大量数据导入到数据库

针对你说的第二个问题:追加导入和更新导入,其实这就是一种方法的两个方面,若是数据库里没有数据,则追加,否则更新;这里提醒一下:注意锁定表
第三个问题:数十万级为单位是指百万还是千万数据?数据量大的情况下注意其SQL的优化
第四:比较简单的方式是:不管数据库里有没有数据需要更新,都先备份,然后再进行操作
关于问题补充:你说的电子表示是不是指excel中拥有三个sheet,每个sheet为一张表?
你说的建立中间表的想法是非常正确的,这样可以保证源数据和目的数据源的安全,有序
附:以你提问的水准,我想不需要提供具体的代码了

8. 大家对处理大批量的数据入库有什么心得

如果简单插入好办,直接插入就可以了。但如果是按楼主的计数处理方法,可以采用更灵活方式。例如,假设有一个table1表,这个表就是楼主说的要插入数据的表,再弄个和table1完全相同的table2表。将1000条数据完全插入table2(不做任何处理)。在插入之前要清空table2表。这时table2已有1000条数据。然后用table1和table2的共同主键(我想一般表都有primary key吧)相连(inner join),连接后的记录集假设有600条记录,那么这600条就是table1中已经存在的,这时将table1中的某字段值加1即可。那么table2中剩下的400条就是在table1中不存在的,这时用子查询获得那400条记录,再插入table1表即可。也许有更好的方法,不过我临时只想到了这个,如果谁有更好的方法可以共享。还有就是不知道楼主那1000条记录是以什么形式组织的。如果也是表,那就更好了。哈哈。

9. 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;