濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹

sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹

熱門(mén)標(biāo)簽:電銷機(jī)器人 深圳 在電子版地圖標(biāo)注要收費(fèi)嗎 武漢AI電銷機(jī)器人 股票配資電銷機(jī)器人 萬(wàn)利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 外呼系統(tǒng)會(huì)封嗎 地圖標(biāo)注如何弄全套標(biāo) 實(shí)體店地圖標(biāo)注怎么標(biāo) 南京電銷外呼系統(tǒng)哪家好

sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)的用法

server數(shù)據(jù)庫(kù)中raiserror的作用就和asp.NET中的throw new Exception一樣,用于拋出一個(gè)異?;蝈e(cuò)誤。這個(gè)錯(cuò)誤可以被程序捕捉到。

raiserror的常用格式如下:
raiserror('錯(cuò)誤的描述',錯(cuò)誤的嚴(yán)重級(jí)別代碼,錯(cuò)誤的標(biāo)識(shí),錯(cuò)誤的描述中的參數(shù)的值(這個(gè)可以是多個(gè)),一些其它參數(shù)),在官方上的格式描述如下:

RAISERROR ( { msg_id | msg_str | @local_variable } 
 { ,severity ,state } 
 [ ,argument [ ,...n ] ] ) 
 [ WITH option [ ,...n ] ] 

其中,[ ,argument [ ,...n ] ]與 [ WITH option [ ,...n ] 兩項(xiàng)是可以不寫(xiě)的。

分別解釋一下各參數(shù)的用法:

一、{ msg_id | msg_str | @local_variable }

從這個(gè)參數(shù)中可以看出,這一項(xiàng)可能為三個(gè)值,
1,sys.messages中的自定義錯(cuò)誤信息的錯(cuò)誤信息號(hào),自定義錯(cuò)誤信息可以使用sp_addmessage存儲(chǔ)過(guò)程添加到sys.messages中,注意, 用戶定義錯(cuò)誤消息的錯(cuò)誤號(hào)應(yīng)當(dāng)大于 50000。
示例:raiserror(50001,16,1)
2,一條直接的錯(cuò)誤描述,示例:raiserror('這里是錯(cuò)誤描述的示例',16,1)
3,一個(gè)包含錯(cuò)誤描述變量,示例:

declare @error_mes varchar(1000) 
set @error_mes='這里是錯(cuò)誤描述的示例' 
raiserror(@error_mes,16,1) 

二、severity

這個(gè)參數(shù)為用戶定義的該錯(cuò)誤信息的級(jí)別,我們可以指定 0 到 18 之間的嚴(yán)重級(jí)別。只有 sysadmin 固定服務(wù)器角色成員或具有 ALTER TRACE 權(quán)限的用戶才能指定 19 到 25 之間的嚴(yán)重級(jí)別。若要使用 19 到 25 之間的嚴(yán)重級(jí)別,必須選擇 WITH LOG 選項(xiàng)。

注意,如果錯(cuò)誤級(jí)別在20~25之間,那么數(shù)據(jù)庫(kù)會(huì)認(rèn)為這個(gè)錯(cuò)誤是致命,那么數(shù)據(jù)庫(kù)會(huì)將該錯(cuò)誤記錄到錯(cuò)誤日志和應(yīng)用程序日志后終止數(shù)據(jù)庫(kù)的連接。任何小于 0 的嚴(yán)重級(jí)別被認(rèn)為等于0。大于 25 的嚴(yán)重級(jí)別被認(rèn)為等于25。

三、state

這個(gè)參數(shù)是可以是1~127之間任意整數(shù),可以用來(lái)標(biāo)識(shí)錯(cuò)誤的發(fā)生位置,如果一段代碼的多個(gè)位置都會(huì)發(fā)生同樣的錯(cuò)誤,那么就可以將這個(gè)參數(shù)設(shè)置為不同的值,用來(lái)標(biāo)識(shí)是那個(gè)位
置發(fā)生錯(cuò)誤了。

四、[ ,argument [ ,...n ] ]

如果參數(shù){ msg_id | msg_str | @local_variable }中包含了一些代替符,那么這個(gè)參數(shù)就是代替符的具體的值,這個(gè)和asp.Net中的string.Format用法是一樣的。示例如下:

declare @error_mes varchar(1000) 
set @error_mes='這里是用戶%s引發(fā)的錯(cuò)誤描述' 
raiserror(@error_mes,16,1,'張三') 

也可以是這樣,可能適用性更廣些。

declare @error_mes varchar(1000) 
declare @error_obj varchar(1000) 
select @error_obj=name from table_users where…… 
set @error_mes='這里是用戶%s引發(fā)的錯(cuò)誤描述' 
raiserror(@error_mes,16,1,@error_obj) 

上面代碼中的%s,代表它要替代是一個(gè)字符串,如果我們把示例寫(xiě)成下面這樣就會(huì)報(bào)錯(cuò)了:

declare @error_mes varchar(1000) 
set @error_mes='這里是用戶%s引發(fā)的錯(cuò)誤描述' 
raiserror(@error_mes,16,1,1) 

因?yàn)?不是一個(gè)字符串,如果要替代是一個(gè)整數(shù),就需要使用%i或者%d了。所有的對(duì)應(yīng)關(guān)系如下:
1,%d或%i代表有符號(hào)整數(shù)
2,%u代表無(wú)符號(hào)整數(shù)
3,%o代表無(wú)符號(hào)八進(jìn)制數(shù)
4,%s代表字符串
5,%x或%X代表 無(wú)符號(hào)十六進(jìn)制數(shù)

五、[ WITH option [ ,...n ] ]

該參數(shù)為錯(cuò)誤的自定義選項(xiàng),可以是下面三個(gè)值中的一個(gè):
1,LOG--在 Microsoft SQL Server 數(shù)據(jù)庫(kù)引擎 實(shí)例的錯(cuò)誤日志和應(yīng)用程序日志中記錄錯(cuò)誤。記錄到錯(cuò)誤日志的錯(cuò)誤目前被限定為最多 440 字節(jié)。只有 sysadmin 固定服務(wù)器角色
成員或具有 ALTER TRACE 權(quán)限的用戶才能指定 WITH LOG。
2,NOWAIT--將消息立即發(fā)送給客戶端。
3,SETERROR--將 @@ERROR 值和 ERROR_NUMBER 值設(shè)置為 msg_id 或 50000,不用考慮嚴(yán)重級(jí)別。

我們還可以在Begin catch中使用raiserror。示例如下:

begin try 
 raiserror('這是一個(gè)錯(cuò)誤',16,1) //注意,只有severity級(jí)別在11~19之間,控制才會(huì)跳轉(zhuǎn)到catch塊中。 
end try 
begin catch 
 declare @error_message varchar(1000) 
 set @error_message=error_message() 
 raiserror(@error_message,16,1) 
 return 
end catch 

到此這篇關(guān)于sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹的文章就介紹到這了,更多相關(guān)sql server中raiserror函數(shù)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 圖書(shū)管理系統(tǒng)的sqlserver數(shù)據(jù)庫(kù)設(shè)計(jì)示例
  • SQL Server數(shù)據(jù)庫(kù)錯(cuò)誤5123解決方案
  • SqlServer數(shù)據(jù)庫(kù)中文亂碼問(wèn)題解決方法
  • SQL Server免費(fèi)版的安裝以及使用SQL Server Management Studio(SSMS)連接數(shù)據(jù)庫(kù)的圖文方法
  • SQL Server 2000/2005/2008刪除或壓縮數(shù)據(jù)庫(kù)日志的方法
  • SQL Server數(shù)據(jù)庫(kù)中的表名稱、字段比較
  • SQLServer數(shù)據(jù)庫(kù)處于恢復(fù)掛起狀態(tài)的解決辦法
  • Servermanager啟動(dòng)連接數(shù)據(jù)庫(kù)錯(cuò)誤如何解決

標(biāo)簽:汕頭 泰安 安徽 濟(jì)寧 廣東 武威 濟(jì)源 臺(tái)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹》,本文關(guān)鍵詞  sql,server,數(shù)據(jù)庫(kù),中,raiserror,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于sql server數(shù)據(jù)庫(kù)中raiserror函數(shù)用法的詳細(xì)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    灵武市| 黔南| 榆林市| 福安市| 翁牛特旗| 安徽省| 沁水县| 巴塘县| 余江县| 绥芬河市| 沧州市| 陆良县| 迁安市| 桐柏县| 进贤县| 峨山| 博客| 宜城市| 田东县| 绥江县| 工布江达县| 建德市| 佳木斯市| 阿城市| 大丰市| 东明县| 永嘉县| 东至县| 广灵县| 上林县| 常熟市| 深水埗区| 山阳县| 乐陵市| 辛集市| 兰州市| 大余县| 长子县| 汾阳市| 南安市| 丽水市|