因要記錄儲存過程中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;
--記錄錯誤
'錯誤已經記錄在資料庫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 中一些最為重要的錯誤檢測方法。...