SQL Server存储过程批量插入数据

上一篇 / 下一篇  2014-08-01 13:44:33 / 个人分类:SQL Server

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

DECLARE@userCode_baseVARCHAR(30)
DECLARE@countINTEGER
DECLARE@indexINTEGER
DECLARE@rand1INTEGER
DECLARE@rand2INTEGER
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)
INSERTINTOuserInfo (userCode,roleType,groupID,userName,text1,text2,text3)
VALUES(@userCode,@rand1,@rand2,@userName,'aokei kaol jof','','aokei kaol jof')

SET@index=@index+1
END
GO

TAG:

 

评分:0

我来说两句

Open Toolbar