sql 的錯誤處理

2022-04-12 06:54:32 字數 1517 閱讀 9462

因要記錄儲存過程中sql裡面遇到的錯誤,以方便開發測試時追蹤、改進。但儲存過程有100+,每個都寫一大堆相同的錯誤處理,痛苦死了。於是把錯誤處理弄了個儲存過程:

處理錯誤記錄的儲存過程

use[

webe]go

/****** 物件:  storedprocedure [dbo].[errorhandle]    指令碼日期: 08/09/2010 09:48:13 *****

*/set

ansi_nulls 

ongo

setquoted_identifier 

ongo

create

proc

[dbo].

[errorhandle

]@errormessage

varchar

(1000

) output

asdeclare

@errorprocedure

varchar

(1000

);declare

@errornumber

int;

declare

@errorline

int;

declare

@errorseverity

int;

declare

@errorstate

int;

set@errorprocedure

=error_procedure();

set@errornumber

=error_number();

set@errorline

=error_line();

set@errormessage

=error_message()

--+' 錯誤的儲存過程:'+@errorprocedure +' 錯誤行號:'+cast( @errorline  as varchar(30))+' 錯誤代號:'+ cast (@errornumber  as varchar(30));

set@errorseverity

=error_severity();

set@errorstate

=error_state();

--raiserror(@errormessage,@errorseverity,@errorstate);  --再丟擲的話會變成丟擲兩次

execute

p_syserrorinfo_insert  

'db server',

@errormessage

, @errorprocedure

, output;

--記錄錯誤

print

'錯誤已經記錄在資料庫syserrorinfo表中'if

@errormessage

isnull

set@errormessage=''

return

@errormessage

p_syserrorinfo_insert  是錯誤記錄的儲存過程。

MySql錯誤處理 錯誤處理的例子

有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not found 執行 rollback和產生一條錯誤...

MySql錯誤處理(三) 錯誤處理的例子

mysql錯誤處理 三 錯誤處理的例子 有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not foun...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...