TSQL多记录集

TSQL多记录集,tsql,Tsql,我使用光标在一个记录集中循环,并将值插入另一个表中。但是,当我运行代码时,每次循环都会将select打印到一个记录集中时,结果会给我3个不同的记录集。我希望代码循环并插入,但结果仅显示包含@OUT\u状态的最后一个记录集 DECLARE loop_Cursor CURSOR FOR ((SELECT Picknote, noparts, nolines from dbo.pickdet where batchid = @helpingwith )) OPEN loop_Cu

我使用光标在一个记录集中循环,并将值插入另一个表中。但是,当我运行代码时,每次循环都会将select打印到一个记录集中时,结果会给我3个不同的记录集。我希望代码循环并插入,但结果仅显示包含@OUT\u状态的最后一个记录集

    DECLARE loop_Cursor CURSOR FOR  
((SELECT Picknote, noparts, nolines from dbo.pickdet where batchid =     @helpingwith )) 
OPEN loop_Cursor;  
FETCH NEXT FROM loop_Cursor;  
WHILE @@FETCH_STATUS = 0  
  BEGIN  
 INSERT into dbo.Pickdet (batchid,nolines,noparts,fullpart) VALUES     (@new_identity, @nolines, @noparts, 'Helper')
  FETCH NEXT FROM loop_Cursor;  
   END;  
CLOSE loop_Cursor;  
DEALLOCATE loop_Cursor;  

SELECT  @OUT_STATUS = 'SUCCESS',@OUT_STATUS_DESCRIPTION = 'Packing Batch Created' 


SELECT  @OUT_STATUS as out_status,@OUT_STATUS_DESCRIPTION as out_status_description,  @new_identity AS new_identity, @pickingnow AS old_id

我认为您的语法应该是
从光标中提取下一个到@Param1、@Param2….
。您可以使用
INSERT-INTO-Yourtable(Col1,…)选择Col1不带游标或从dbo.pickdet中选择并插入到dbo.pickdet中-这是同一个表,是吗?此外,这里不需要循环,最好是在不引用当前代码的情况下重新启动想要实现的目标。