SQL SERVER存储过程批量插入数据库表数据

      在做数据库系统开发时,特别是需要对数据库操作进行性能测试及优化时,我们就需要在数据库测试表中插入大量数据以便测试。对于这些数据的插入,这里通过实例展示如何通过存储过程进行实现。
 
      数据库表(userInfo)结构如下:
 
CREATE   TABLE   [ dbo ] . [ userInfo ]  (
 
[ userID ]   [ int ]   IDENTITY  ( 1 1 NOT   NULL  ,
 
[ roleType ]   [ int ]   NULL  ,
 
[ groupID ]   [ int ]   NULL  ,
 
[ userCode ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ userName ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ text1 ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ text2 ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ text3 ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  
ON   [ PRIMARY ]
GO
 
    存储过程如下(这里是批量插入99000条数据,roleType,groupID两个字段为随机生成的0-5之间的数):
 
CREATE   PROCEDURE  add_UserInfo
AS
DECLARE   @userCode   VARCHAR ( 30 )
DECLARE   @userName   VARCHAR ( 30 )

DECLARE   @userCode_base   VARCHAR ( 30 )
DECLARE   @count   INTEGER
DECLARE   @index   INTEGER
DECLARE   @rand1   INTEGER
DECLARE   @rand2   INTEGER
SET   @userCode_base = ' qs_ '
SET   @userName = ' userName '
SET   @count = 100000
SET   @index = 10000

WHILE   @index < @count
BEGIN
 
SET   @userCode = @userCode_base + CONVERT ( VARCHAR , @index )
 
SET   @rand1 = convert ( int , rand () * 5 )
 
SET   @rand2 = convert ( int , rand () * 5 )
 
INSERT   INTO  userInfo (userCode,roleType,groupID,userName,text1,text2,text3)
 
VALUES  ( @userCode , @rand1 , @rand2 , @userName , ' aokei kaol jof ' , '' , ' aokei kaol jof ' )
 
 
SET   @index = @index + 1
END
GO
 

本文出自:冯立彬的博客



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值