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 tryselect 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 時,它即被稱為遞迴查詢。遞迴查詢通常用於返回分層資料,例如 顯...