MSSQL 2005 2008 中的錯誤處理機制

2022-02-06 08:27:39 字數 1012 閱讀 8999

begin

try--

sql

endtry

begin

catch

--sql (處理出錯動作)

endcatch

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

中,執行beign catch...end catch錯誤處理sql。try..catch 是可以巢狀的。

在begin catch ...end catch中我們可以利用系統提供的下面四個函式得到出錯資訊:

error_number 返回錯誤**

error_serverity 返回錯誤的嚴重級別

error_state 返回錯誤狀態**

error_message 返回完整的錯誤資訊

error_procedure() as

errorprocedure, 返回儲存過程名稱

error_line() as

errorline, 返回出錯的行

上面的四個函式在同乙個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

結果:-----

error_number error_message error_state error_severity

8134 遇到以零作除數錯誤。 1 16

mssql 2005 ,2008匯出資料字典

在你要匯出資料字典的資料空中右鍵,新建查詢,執行如下 即可 select case when a.colorder 1 then d.name else end 表名,d.xtype as 表型別,a.colorder 字段序號,a.name 欄位名,case when columnproperty...

mssql中的分頁查詢

mssql中的分頁查詢沒有mysql那麼方便,而且由於版本的原因,有些方法不通用,這裡寫一下比較通用的方法 使用top pagesize 處理,然後where 條件加上not in過濾不要的資訊就好了 例如 select top id,type,title,createtime from lyg s...

MSSQL中的遞迴查詢

本人向來很懶,下文均摘自msdn。公用表表示式 cte 具有乙個重要的優點,那就是能夠引用其自身,從而建立遞迴 cte。遞迴 cte 是乙個重複執行初始 cte 以返回資料子集直到獲取完整結果集的公用表表示式。當某個查詢引用遞迴 cte 時,它即被稱為遞迴查詢。遞迴查詢通常用於返回分層資料,例如 顯...