sql定位過程報錯 SQLServer異常捕獲

2021-10-13 08:29:19 字數 1209 閱讀 9771

create database test

use test

error_number() 返回錯誤號。

error_severity() 返回嚴重性。

error_state() 返回錯誤狀態號。

error_procedure() 返回出現錯誤的儲存過程或 觸發器的名稱。

error_line() 返回導致錯誤的例程中的行 號。

error_message() 返回錯誤訊息的完整文字。

create table logtable

id int identity(1,1),--錯誤序號

errornumber int,--錯誤號

errorseverity int,--嚴重性

errorstate int,--錯誤狀態號

errorproducure varchar(200),--出現錯誤的儲存過程或 觸發器的名稱

errorline int,--導致錯誤的例程中的行號

errormessage varchar(200)--錯誤訊息的完整文字

--***************除數不為0的異常捕獲***************==--

if exists (select * from sysobjects where id=object_id(n'getwrong') and xtype='p')

drop proc getwrong

gocreate proc getwrong

asbegin

-----------------製造異常

begin try

select 1/0;

-----------------捕獲異常

end try

begin catch

insert into logtable values(error_number(),error_severity(),error_state(),error_procedure(), error_line() ,error_message())

end catch

end--執行儲存過程

exec getwrong

--檢視日誌表

select * from logtable

--檢視系統日誌表

select * from sys.messages where message_id=8134 and language_id=2052

SQL報錯注入

報錯注入的原理分析sql報錯注入就是利用資料庫的某些機制,人為地製造錯誤條件,使得查詢結果能夠出現在錯誤資訊中。這種手段在聯合查詢受限且能返回錯誤資訊的情況下比較好用。一般是在頁面沒有顯示位 但用echo mysql error 輸出了錯誤資訊的時候使用,它的特點是注入速度快,但是語句較複雜,不能用...

sql報錯注入

當場景中僅僅將sql語句帶入查詢返回頁面正確,沒有返回點的時候,需要報錯注入,用報錯的回顯。裡面用slect語句,不能用 union select 1.功能 將多個字串連線成乙個字串。2.語法 concat str1,str2,返回結果為連線引數產生的字串,如果有任何乙個引數為null,則返回值為n...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...