怎么写存储过程,向数据库中批量插入数据?

例:数据库名为test,内有字段A,B,C,D,批量插入100条数据,字段A内容递增,从a1、a2、a3....a100,字段B内容递增,b1,b2,b3....b100... 例:数据库名为test,内有字段A,B,C,D,批量插入100条数据,字段A内容递增,从a1、a2、a3....a100,字段B内容递增,b1,b2,b3....b100,字段C、D内容不变。请问怎么写存储过程,将这100条数据插入数据?
test是数据库中的表,A,B字段可以对应递增,C、D内容不为空,随便找个数据填充就行,我想知道这个存储过程的语法怎么写,请帮我解惑。
展开
 我来答
dong_1984dd
2015-08-09 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:222万
展开全部
  1. 用循环语句生成字段值insert

  2. SQL 如下:

create procedure InsertTest

as

begin

declare @i int

declare @s varchar(20)

set @i=1

while @i<=100

begin

select @s=cast(@i AS varchar(20)) 

insert into test (A,B,C,D) VALUES ('a'+@s,'b'+@s,'ccccc','ddddd')

SET @i=@i+1

end

end

Ailiex
2014-07-11 · TA获得超过996个赞
知道小有建树答主
回答量:1108
采纳率:37%
帮助的人:547万
展开全部

这个简单循环。

CREATE TABLE #test (a INT,b VARCHAR(10),c VARCHAR(10),d VARCHAR(10))
GO

CREATE PROC insertdata
as
DECLARE @i INT
SET @i=1
WHILE (@i<=100)
BEGIN
INSERT INTO  #test VALUES(@i,'aaa'+CAST(@i AS varchar),'cc','dd')

SET @i=@i+1
END

go

SELECT * FROM #test
追问

请问,报了这个错误是什么原因啊?

追答
是有语法错误吧,你是什么版本的SQL。我在SQL2008上执行没问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2014-07-11 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:809万
展开全部
你的描述不清楚啊,test是不是数据表?A,B字段是不是对应递增?C,D不变意思是都是空值,还是对某些现有值的选择?
更多追问追答
追问
test是数据库中的表,A,B字段可以对应递增,C、D内容不为空,随便找个数据填充就行,我想知道这个存储过程的语法怎么写,请帮我解惑。
追答
用循环语句生成字段值insert就OK了
create procedure InsertTest
as
begin
declare @i int
declare @s varchar(20)
set @i=1
while @i<=100
begin
select @s=cast(@i AS varchar(20)) 
insert into test (A,B,C,D) VALUES ('a'+@s,'b'+@s,'ccccc','ddddd')
SET @i=@i+1
end
end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式