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

循环插入数据
CREATE   PROC   SP_ADDQX
 
@USERNAME   VARCHAR(300),         --   存储多个用户ID
@QXIDS           VARCHAR(300)       --   存储多个权限ID


AS


          INSERT   INTO   (QXID,STAFF_ID)   VALUES   (@QXIDS,@USERNAME)

这条语句只能插一条,要循环插入多条该怎么写?   求解.......


------解决方案--------------------
1.你的 @USERNAME 和 @QXIDS 分別是如何存儲多個值的?

2.是不是要將傳入的多個值全部一次插入到表中?
------解决方案--------------------
CREATE PROC SP_ADDQX
@USERNAME VARCHAR(300), -- 存储多个用户ID
@QXIDS VARCHAR(300) -- 存储多个权限ID
AS
SET @USERNAME = @USERNAME + ', '
SET @ypids = @ypids + ', '
WHILE charindex( ', ',@ypids) > 0
BEGIN
INSERT INTO (QXID,STAFF_ID)
VALUES (substring(@ypids,1,charindex( ', ',@ypids)-1),
substring(@USERNAME,1,charindex( ', ',@USERNAME)-1))
SET @ypids = stuff(@ypids,1,charindex( ', ',@ypids), ' ')
SET @USERNAME = stuff(@USERNAME,1,charindex( ', ',@USERNAME), ' ')
END