注册 登录
编程论坛 SQL Server论坛

如何用存储过程实现一次插入多条记录?

StrayInSky 发布于 2008-01-09 15:09, 4220 次点击
比如:
我新建一张表t_course
create table t_course(number char(4),names char(10),teacher char(10),hours int,credit int)

创建存储过程 proc_insert:
create proc proc_insert
@c_number char(4),@c_name char(10),@teacher char(10),@hours int,@credit int
as
BEGIN transaction
insert into t_course(number,names,teacher,hours,credit)
values (@c_number,@c_name,@teacher ,@hours ,@credit)


if @@error<>0
Begin
 Rollback tran
  Return
end
commit transaction


如何显示插入多条记录呢?
5 回复
#2
XieLi2008-01-09 16:23
是如何插入多条记录呢?
还是显示插入了多少条记录?
#3
StrayInSky2008-01-09 17:34
如何插入多条记录

不好意思噢,写错了。。
#4
XieLi2008-01-10 09:34
insert into t_course(number,names,teacher,hours,credit)
SELECT  @c_number,@c_name,@teacher ,@hours ,@credit
UNION ALL
SELECT  @c_number,@c_name,@teacher ,@hours ,@credit

--不知道是不是你要的结果
#5
cyyu_ryh2008-01-10 10:35
/*SQL存储过程批量添加数据,本例添加5条数据*/
use test  

if exists (select name from sysobjects where name='add_UserInfo' and type='p')
           drop proc add_UserInfo

GO
CREATE PROCEDURE add_UserInfo
AS
DECLARE @Code VARCHAR(50)
DECLARE @DEMO VARCHAR(50)


DECLARE @count INTEGER
DECLARE @index INTEGER

SET @Code='FFFFFF'
SET @DEMO='userName'
SET @count=10
SET @index= 5

WHILE @index<@count
BEGIN

INSERT INTO TEST2 (Code,DEMO)
VALUES (@Code,@DEMO)

SET @index=@index+1
END
GO


EXEC add_UserInfo   /* 执行存储过程*/
#6
StrayInSky2008-01-10 12:15
哈!谢谢二位!
1