存储过程中一次性安插N条数据
存储过程中一次性插入N条数据?
需要一次性插入N条数据,在变量@CLASSIDS里面指定。
DECLARE @NAME NVARCHAR(50)
DECLARE @CLASSIDS NVARCHAR(500)
SET @NAME = 'zhao' //输入变量,只是一个值
SET @CLASSIDS = '1,2,3' //输入变量,包含N个值
效果应该如下所示,插入三条数据,但是注意@CLASSIDS是变量,有可能是'3,7,8,1' 等。
INSERT INTO table1 (name, classid)
VALUES('zhao', '1')
VALUES('zhao', '2')
VALUES('zhao', '3')
------解决思路----------------------
需要一次性插入N条数据,在变量@CLASSIDS里面指定。
DECLARE @NAME NVARCHAR(50)
DECLARE @CLASSIDS NVARCHAR(500)
SET @NAME = 'zhao' //输入变量,只是一个值
SET @CLASSIDS = '1,2,3' //输入变量,包含N个值
效果应该如下所示,插入三条数据,但是注意@CLASSIDS是变量,有可能是'3,7,8,1' 等。
INSERT INTO table1 (name, classid)
VALUES('zhao', '1')
VALUES('zhao', '2')
VALUES('zhao', '3')
------解决思路----------------------
create table table1(name varchar(10) , classid int)
go
DECLARE @NAME NVARCHAR(50)
DECLARE @CLASSIDS NVARCHAR(500)
declare @sql varchar(4000)
SET @NAME = 'zhao'
SET @CLASSIDS = '1,2,3,5,7,9,11,18'
set @sql = 'insert into table1(name,classid) values(''' + @NAME + ''','
set @sql = @sql + REPLACE(@CLASSIDS,',','),(''' + @name + ''', ') + ')'
--print @sql
exec (@sql )
go
select * from table1
go
drop table table1
go
(8 行受影响)
name classid
---------- -----------
zhao 1
zhao 2
zhao 3
zhao 5
zhao 7
zhao 9
zhao 11
zhao 18
(8 行受影响)