mssql儲存過程異常處理

2022-06-07 18:18:07 字數 1421 閱讀 6998

mssql2000和mssql2005以上版本的異常處理語法是不相同的。

sql server 2005以上版本支援結構化異常處理,而mssql2000是不支援的。

1)先看mssql 2000的異常處理語法:

create proc sp_mssql2000

(@titlename nvarchar(128))

asdeclare     @err int,

begin transaction

insert into...

select @err = @@error

if @err <> 0

goto error_handler

update...set...

if @err <> 0

goto error_handler

goto exit_proc

error_handler:

rollback transaction

-- log the error 

insert log (tablename, username, errornumber, errorseverity, errorstate)

values (@tablename, suser_sname(), @err, 0, 0)

exit_proc:

commit tran

2)mssql2005的非同步處理語法:

create proc sp_mssql2005

(@titlename nvarchar(128))

asdeclare @err int

begin try

begin transaction

insert dbo.authors  (au_fname, au_lname, titleid,commissionrating)

values (@au_fname, @au_fname, @@identity, @commissionrating)

commit transaction

end try

begin catch

rollback transaction

-- log the error 

insert  into log (username, tablename,     

errornumber, errorseverity, errorstate, errormessage)

values (suser_sname(), @tablename, error_number(),  

error_severity(), error_state(), error_message())   

raiserror (@errormessage, 16,1)

--返回使用者定義的錯誤資訊並設系統標誌,記錄發生錯誤。

end catch

MSSQL處理死鎖儲存過程

sql server死鎖使我們經常遇到的問題,下面就為您介紹如何查詢 sql server 死鎖,希望對您學習sql server死鎖方面能有所幫助。sql server死鎖的查詢方法 exec master.dbo.p lockinfo 0,0 顯示死鎖的程序,不顯示正常的程序 exec mast...

MSSQL儲存過程

sqlserver 帶有返回值,儲存過程同時新增兩張表,並將第一張表的主鍵插入第二張表當中 2010 07 04 22 00 55 分類 sql 字型大小 訂閱 sql server 中,可以使用 scope identity identity ident current 來取得最後插入記錄的值值,...

儲存過程 異常處理continue

drop table if exists t2 create table t2 s1 int,primary key s1 engine innodb delete from t2 drop procedure if exists p23 delimiter create procedure p23...