CREATE PROCEDURE [dbo].[M_CreateInventoryCk]
AS
DECLARE @tran_error INT;--记录错误数量
DECLARE @cursor CURSOR; --游标
BEGIN
SET @cursor=cursor for
select LogistHead.[Guid],OrderHead.Guid,LogistHead.Weight,LogistHead.Pack_No
From dbo.Kj_Logistics_Head LogistHead
OPEN @cursor
FETCH NEXT FROM @cursor INTO @M_ID, @OrderGuid, @CURSORWeight, @CURSORPack_No
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
BEGIN TRAN
SET @tran_error = 0;
-- do something
END TRY
BEGIN CATCH
PRINT '出现异常,错误编号:' + CONVERT(VARCHAR, ERROR_NUMBER()) + ',错误消息:' + ERROR_MESSAGE()
SET @tran_error = @tran_error + 1
END CATCH
IF ( @tran_error > 0 )
BEGIN
ROLLBACK TRAN; --执行出错,回滚事务
END
ELSE
BEGIN
COMMIT TRAN; --没有异常,提交事务
END
FETCH NEXT FROM @cursor INTO @M_ID, @OrderGuid, @CURSORWeight, @CURSORPack_No
END
CLOSE @cursor --关闭游标
DEALLOCATE @cursor --释放游标
END
sql server 创建存储过程,游标,事务
于 2023-11-24 15:02:21 首次发布