sql 数据库循环插入100条记录! 怎么实现? 是不是得用存储过程啊

sql 数据库循环插入100条记录! 怎么实现? 是不是得用存储过程啊,第1张

1、创建测试表,

create table test_loop(id varchar2(20),remark varchar2(20))

2、循环插入测试数据;

begin

for i in 1..100 loop

   insert into test_loop

values(i,'level_'||i)

end loop

commit

end

3、查询表中全量数据;select t.*, rowid from test_loop t

4、编写语句,查询表中记录数,可以看到结果为100;

 select count(*) sec from test_loop t

CREAT PROCEDURE tester

AS

BEGIN

SET NOCOUNT ON

DECLARE @userId varchar(50)

DECLARE @count int

SET @count = 0

SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'

WHILE @count >0

BEGIN

SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'

exec UserService_RemoveUserByUserId @userId

SET @count = @count -1

END

END

说明:

1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。

2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。

已经测试,创建并运行下面的存储过程可以循环添加数据:

create procedure dowhile()

begin

declare i int default 0

start transaction

while i<50 do

insert into users(userId,userName,userPwd) values(null,concat('s00',i),123456)

set i=i+1

end while

commit

end

delimiter


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11946505.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存