SQL SERVER存储过程批量插入数据库…
2014-05-04 10:45
211 查看
SQL SERVER存储过程批量插入数据库表数据
这是个简单的例子,向岗位表中插入数据。要求编号名称全部是以GSPOS_为前缀的,如POS_1,一直到POS_1000,备注里内容如批量加的GSPOS_1,批量加的GSPOS_2......
Declare @td int
DECLARE @base VARCHAR(30)
DECLARE @id VARCHAR(30)
SET @base='gspos_'
SET @td=1
while @td< 2001
begin
set @id=@base+CONVERT(VARCHAR,@td)
insert into
gspposition(ID,CODE,NAME,TYPE,ORGID,Sysinit,description,Creator,Createdtime)
values ( @id,@id,@id, 1, '0102',0,'批量添加'+@id,'9999','2009-7-20
14:28:03');
set @td=@td+1
end
go
以下为往用户表中插入数据。
Declare @td int
DECLARE @base VARCHAR(30)
DECLARE @id VARCHAR(30)
SET @base='gs_'
SET @td=1
while @td< 2001
begin
set @id=@base+CONVERT(VARCHAR,@td)
insert into
gspuser(ID,CODE,NAME,PASSWORD,TYPE,STATE,DEFORGID,DAYLIMIT,TIMELIMIT,Creatorid,Createddate,
passvalidspan,profile,alterpassflag,defposid,authcontent,sysinit)
values ( @id,@id,@id,
'96niR3fsIyEsVNejULxb6lR3/bs=',1,1,
'0102','1111111','111111111111111111111111',
'6e35ff7d-5e7b-427e-8f51-d898a4a630e1','2009-10-28
11:06:21.017','0',
'AAEAAAD/////AQAAAAAAAAAEAQAAAOIBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uT2JqZWN0LCBtc2NvcmxpYiwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtTeXN0ZW0uT2JqZWN0LCBtc2NvcmxpYiwgVmVyc2lvbj0y',
0, '18821f6c-21fb-457f-a57b-c0f7ecec0196','1,0,0',0);
set @td=@td+1
end
go
下面是详细介绍复杂的例子。
在做数据库系统开发时,特别是需要对数据库操作进行性能测试及优化时,我们就需要在数据库测试表中插入大量数据以便测试。对于这些数据的插入,这里通过实例展示如何通过存储过程进行实现。
数据库表(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
这是个简单的例子,向岗位表中插入数据。要求编号名称全部是以GSPOS_为前缀的,如POS_1,一直到POS_1000,备注里内容如批量加的GSPOS_1,批量加的GSPOS_2......
Declare @td int
DECLARE @base VARCHAR(30)
DECLARE @id VARCHAR(30)
SET @base='gspos_'
SET @td=1
while @td< 2001
begin
set @id=@base+CONVERT(VARCHAR,@td)
insert into
gspposition(ID,CODE,NAME,TYPE,ORGID,Sysinit,description,Creator,Createdtime)
values ( @id,@id,@id, 1, '0102',0,'批量添加'+@id,'9999','2009-7-20
14:28:03');
set @td=@td+1
end
go
以下为往用户表中插入数据。
Declare @td int
DECLARE @base VARCHAR(30)
DECLARE @id VARCHAR(30)
SET @base='gs_'
SET @td=1
while @td< 2001
begin
set @id=@base+CONVERT(VARCHAR,@td)
insert into
gspuser(ID,CODE,NAME,PASSWORD,TYPE,STATE,DEFORGID,DAYLIMIT,TIMELIMIT,Creatorid,Createddate,
passvalidspan,profile,alterpassflag,defposid,authcontent,sysinit)
values ( @id,@id,@id,
'96niR3fsIyEsVNejULxb6lR3/bs=',1,1,
'0102','1111111','111111111111111111111111',
'6e35ff7d-5e7b-427e-8f51-d898a4a630e1','2009-10-28
11:06:21.017','0',
'AAEAAAD/////AQAAAAAAAAAEAQAAAOIBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uT2JqZWN0LCBtc2NvcmxpYiwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtTeXN0ZW0uT2JqZWN0LCBtc2NvcmxpYiwgVmVyc2lvbj0y',
0, '18821f6c-21fb-457f-a57b-c0f7ecec0196','1,0,0',0);
set @td=@td+1
end
go
下面是详细介绍复杂的例子。
在做数据库系统开发时,特别是需要对数据库操作进行性能测试及优化时,我们就需要在数据库测试表中插入大量数据以便测试。对于这些数据的插入,这里通过实例展示如何通过存储过程进行实现。
数据库表(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
相关文章推荐
- sql server 批量修改表和存储过程的所有者
- MS SQl Server 为用户批量授与存储过程执行权限
- 存储过程学习-批量插入10000条数据进数据库
- SQLServer&nbsp;2008数据库查看死…
- 如何清理sql&nbsp;server数据库日志
- 设置SQL Server数据库AWE机制…
- SQL Server数据库备份和恢复措施
- 存储过程学习-批量插入10000条数据进数据库
- SQL-SERVER数据库中的游标、存储过程和触发器
- 【转】SQL_Server2000示例数据库NorthWind的存储过程和视图分析
- sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- SQL-SERVER数据库中的游标、存储过程和触发器 关键词 SQL-SERVER、游标、存储过程、触发器、高效处理数据
- SQL Server 数据库使用备份还原造…
- 生成sql server 数据库 脚本的 存储过程和调用
- sql将以|间隔的字符串循环插入数据库中的存储过程案例
- 记录下来这个网址(Sql sserver 数据库 -----存储过程的原理及使用技巧)
- SQL Server数据库自增长标识列的更…
- MFC+SQL&nbsp;server&nbsp;数据库…
- 修改存储过程插入自定义的SSIS SQL Server 日志信息