SQL SERVER用存储过程插入大量的数据

SQL SERVER存储过程批量插入数据库表数据
在做数据库系统开发时,特别是需要对数据库操作进行性能测试及优化时,我们就需要在数据库测试表中插入大量数据以便测试。对于这些数据的插入,这里通过实例展示如何通过存储过程进行实现。
数据库表(userInfo)结构如下:
CREATETABLE[dbo].[userInfo](
[userID][int]IDENTITY(1,1)NOTNULL,
[roleType][int]NULL,
[groupID][int]NULL,
[userCode][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[userName][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[text1][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[text2][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[text3][varchar](50)COLLATEChinese_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,'aokeikaoljof','','aokeikaoljof')

SET@index=@index+1
END
GO

你可能感兴趣的:(数据结构,sql,SQL Server,Go)