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...