SQL SERVER数据库存储过程插入大量的数据的方法
沉沙 2018-05-09 来源 : 阅读 2937 评论 0

摘要:在做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 Server的朋友有所帮助。了解更多内容,请关注职坐标数据库SQL Server频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程