存储过程范例,有输入输出参数,带回滚

创建代码:

create procedure proc_delete_business_and_workflow_data_by_business_key
(    
    --输入参数
    @bkey varchar(50),
    --输出参数
    @error int output
)
as

--开始事务
begin transaction

-- 业务操作
delete from T_JC where JC_ID=@bkey
delete from T_ZG where ZG_ID=@bkey
delete from T_JKF where JKF_ID=@bkey
delete from T_WXZY where WXZYID=@bkey
delete from T_SGZ where id=@bkey
delete from T_SGZ_recheck where id=@bkey
delete from T_WORKREPORT where id=@bkey
delete from T_REPORT_SETDATE where id=@bkey

print(char(10)+'业务数据操作完毕')

--获取错误代码,@@ERROR为系统参数
set @error=@@ERROR
print('错误代码:'+convert(varchar(50),@error))
if(@error=0)
    begin
    --提交事务
    commit transaction
    print('执行了提交事务操作')
    end
else
    begin
    --回滚
    rollback transaction;
    print('执行了回滚事务操作');        
    end

调用代码:

--定义用于接收存储过程输出值的变量
declare @error  int 
--调用存储过程,参数直接跟在存储过程名称后面用空格分隔,参数之间用逗号分隔,输出参数后面需要加output关键字
exec proc_delete_business_and_workflow_data_by_business_key '13',@error output
--输出获取的存储过程输出值,验证执行是否正常
print('存储过程返回的错误代码:'+convert(varchar(50),@error))
原文地址:https://www.cnblogs.com/sheeva/p/4645646.html