免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
SQL server異常處理機(jī)制

 begin try

--業(yè)務(wù)sql

 end try

begin catch --sql (處理出錯動作)
 end catch

我們將可能會出錯的sql 寫在begin try...end try 之間,若出錯,剛程序就跳到緊接著的begin try...end try 的beign catch...end catch

中,執(zhí)行beign catch...end catch錯誤處理SQL。try..catch 是可以嵌套的。

在begin catch ...end catch中我們可以利用系統(tǒng)提供的下面四個函數(shù)得到出錯信息:

error_number() 返回錯誤代碼

error_serverity() 返回錯誤的嚴(yán)重級別

error_state() 返回錯誤狀態(tài)代碼

error_message() 返回完整的錯誤信息

上面的四個函數(shù)在同一個begin catch ...end catch可以在多次使用,值是不變的。

下面是一個簡單的小例子。

begin try
select 2/0
end try

begin catch
select error_number() as error_number ,
error_message() as error_message,
error_state() as error_state,
error_severity() as error_severity
end catch


結(jié)果:

-----
error_number error_message error_state error_severity

8134 遇到以零作除數(shù)錯誤。 1 16

-------------------------------------------------------

 不受 TRY…CATCH 構(gòu)造影響的錯誤
TRY…CATCH 構(gòu)造在下列情況下不捕獲錯誤:

嚴(yán)重級別為 10 或更低的警告或信息性消息。

嚴(yán)重級別為 20 或更高且終止會話的 SQL Server 數(shù)據(jù)庫引擎任務(wù)處理的錯誤。 如果所發(fā)生錯誤的嚴(yán)重級別為 20 或更高,而數(shù)據(jù)庫連接未中斷,則 TRY…CATCH 將處理該錯誤。

需要關(guān)注的消息,如客戶端中斷請求或客戶端連接中斷。

當(dāng)系統(tǒng)管理員使用 KILL 語句終止會話時。

USE AdventureWorks;
GO

BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO

USE AdventureWorks;
GO
BEGIN TRANSACTION;

BEGIN TRY
    -- Generate a constraint violation error.
    DELETE FROM Production.Product
        WHERE ProductID = 980;
END TRY
BEGIN CATCH
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() as ErrorState,
        ERROR_PROCEDURE() as ErrorProcedure,
        ERROR_LINE() as ErrorLine,
        ERROR_MESSAGE() as ErrorMessage;

    IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
END CATCH;

IF @@TRANCOUNT > 0
    COMMIT TRANSACTION;
GO

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在SQL Server 2005中使用Try…Catch塊進(jìn)行T-SQL錯誤處理 - Qz...
ms sql事務(wù)輸出錯誤
SQL Server 事務(wù)、異常和游標(biāo)
_SQL Server_8525_SQL Server數(shù)據(jù)庫引擎錯誤 (分布式事務(wù)已完成。請將此會話登記到新事務(wù)或 NULL 事務(wù)中)_中華文本庫
SQL Server 2014 Upgrade后啟動不了的案例
raiserror BEGIN TRY END TRY BEGIN CATCH END CATCH;
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服