SQLSERVER在存储过程遍历多个结果并执行逻辑的样板代码
简书链接:SQLSERVER在存储过程遍历多个结果并执行逻辑的样板代码
文章字数:267,阅读全文大约需要1分钟
1 |
|
CLOSE cur;
DEALLOCATE cur;
1 | 另外``` WHILE @@FETCH_STATUS = 0```后面要紧接着填写BEGIN,否则死循环 |
CREATE PROCEDURE [dbo].[XXX]
@WorkerID INT,
@CheckSumQty INT OUTPUT,
AS
BEGIN
SET NOCOUNT ON;
-- 声明游标
DECLARE @ToWHID INT;
DECLARE @PartNo NVARCHAR(50);
DECLARE @InvCheckID INT;
DECLARE @MinPackMtNo INT;
-- 创建游标并打开
DECLARE cur CURSOR FOR
SELECT micb.ToWHID, micb.PartNo
FROM A
OPEN cur;
-- 初始化变量
FETCH NEXT FROM cur INTO @ToWHID, @PartNo;
-- 循环处理每一行
WHILE @@FETCH_STATUS = 0
BEGIN
-- 执行存储过程并传递参数
DECLARE @RC INT;
EXEC @RC = [dbo].[XXXX]
@PartNo = @PartNo,
@ToWHID = @ToWHID,
@WorkerID = @WorkerID,
@CheckSumQty = @CheckSumQty OUTPUT,
-- 处理存储过程返回的结果(如果需要)
-- 获取下一行
FETCH NEXT FROM cur INTO @ToWHID, @PartNo
END;
-- 关闭游标并释放资源
CLOSE cur;
DEALLOCATE cur;
-- 返回结果(如果需要)
END;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论