TSQL多记录集
我使用光标在一个记录集中循环,并将值插入另一个表中。但是,当我运行代码时,每次循环都会将select打印到一个记录集中时,结果会给我3个不同的记录集。我希望代码循环并插入,但结果仅显示包含@OUT\u状态的最后一个记录集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
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中-这是同一个表,是吗?此外,这里不需要循环,最好是在不引用当前代码的情况下重新启动想要实现的目标。