begin
declare errno int;
declare continue handler for sqlexception
begin
rollback;
set errno=1;
end;
start transaction;
set errno=0;
insert into test(name) values ('hello world');
insert into test(id, name) values(1,'你好');
commit;
select errno;
end
drop procedure if exists pro_test;
create procedure pro_test
( para_a varchar(50),
para_b varchar(50)
)begin
declare result_code integer default 0; -- 定義返回結果並賦初值0
declare continue handler for sqlexception set result_code=1; -- 在執行過程中出任何異常設定result_code為1
declare continue handler for not found set result_code = 2; -- 如果表中沒有下一條資料則置為2
start transaction; -- 開始事務
/** 這裡寫具體的業務處理...
* 業務處理過程中可以根據實際情況自定義result_code
*/if result_code = 1 then -- 可以根據不同的業務邏輯錯誤返回不同的result_code,這裡只定義了1和0
rollback;
else
commit;
end if;
select result_code;
end ;
回滾操作儲存過程
create or replace procedure roll tab as v tab varchar2 3000 v roll tab varchar2 3000 v sql varchar2 1000 v sql 01 varchar2 1000 cursor cur tab is sele...
MySQL儲存過程事務回滾
sql過程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 delimiter createdefiner root localhost procedure test procedure begin declareerrnoint declarecontinueh...
sql server儲存過程回滾事務
set nocount on這個很常用 作用 阻止在結果集中返回顯示受t sql語句或則usp影響的行計數資訊。當set oncount on時候,不返回計數,當set nocount off時候,返回計數 即使當set nocount on 時候,也更新 rowcount 當set nocount...