循环插入多条数据问题
CREATE PROC sp_Drop_YP
@ypids varchar(300),
@USERNAME int
AS
EXEC ( 'UPDATE UTB_YP SET STATUS=3,KWID=0 WHERE ID IN ( ' + @ypids + ') ') --更新多条数据
INSERT INTO UTB_YPCL (YPID,CZDM,RQ,RYID) VALUES (@YPIDS,3,GETDATE(),@USERNAME)
GO
这个存储过程中INSERT INTO UTB_YPCL (YPID,CZDM,RQ,RYID) VALUES (@YPIDS,3,GETDATE(),@USERNAME) 这条语句只能往表中插入一条数据.如果@ypids中存放多个值的话,需要循环插到表中,该怎么写啊 ,求解.....
------解决方案--------------------hellowork(一两清风) ( ) 信誉:100 2007-7-16 21:01:20 得分: 0
CREATE PROC sp_Drop_YP
@ypids varchar(300),
@USERNAME int
AS
EXEC ( 'UPDATE UTB_YP SET STATUS=3,KWID=0 WHERE ID IN ( ' + @ypids + ') ') --更新多条数据
set @ypids = @ypids + ', '
while charindex( ', ',@ypids) > 0
begin
INSERT INTO UTB_YPCL (YPID,CZDM,RQ,RYID)
VALUES (substring(@ypids,1,charindex( ', ',@ypids)-1),3,GETDATE(),@USERNAME)
set @ypids = stuff(@ypids,1,charindex( ', ',@ypids), ' ')
end
GO
-------------------------------
可以直接使用!
大家一起学习