儲存過程格式:
createprocedure
yourprocedure
asbegin
set nocount on
;
begin try--
-------------------開始捕捉異常
bein tran
------------------開始事務
update a set a.names = b.names from t1 as a inner
join t2 as b on a.id =
b.id
update a set a.names = b.names from t1 as a inner
join t2 as b on a.test =
b.test
commit
tran
-------提交事務
end try--
---------結束捕捉異常
begin catch--
----------有異常**獲
if@@trancount
>0--
-------------判斷有沒有事務
begin
rollback
tran
----------回滾事務
endexec yourlogerrorprocedure--
---------記錄儲存過程執行時的錯誤資訊,自定義
end catch--
------結束異常處理
end
二、捕獲錯誤的常用函式
1、error_number() 返回錯誤號。
2、error_severity() 返回嚴重級別。
3、error_state() 返回錯誤狀態號。
4、error_procedure() 返回出現錯誤的儲存過程或觸發器的名稱。
5、error_line() 返回導致錯誤的行號。
6、error_message() 返回錯誤訊息的完整文字。該文字可包括任何可替換引數所提供的值,如長度、物件名或時間。
SqlServer儲存過程中使用事務,示例
create proc pro getprotrans goodsid int,number int,stockprice money,supplierid int,empid int,stockunit varchar 50 stockdate datetime,totalmoney money ...
在SQL Server儲存過程中使用事務及返回值
1 create procedure testtran23 as45declare userid int6 7set nocount on8 9begin tran adduser 1011 insert into testtable username,password,email values m...
儲存過程中使用隔離級別
set transaction isolation level 控制由連線發出的所有 microsoft sql server select 語句的預設事務鎖定行為。語法 set transaction isolation level 引數 read committed 指定在讀取資料時控制共享鎖以...