日期:2014-05-18  浏览次数:20726 次

循环插入多条数据问题

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



-------------------------------
可以直接使用!
大家一起学习