精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

  • 相關(guān)軟件
    >RAISERROR 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    返回用戶定義的錯誤信息并設(shè)系統(tǒng)標(biāo)志,記錄發(fā)生錯誤。通過使用 RAISERROR 語句,客戶端可以從 sysmessages 表中檢索條目,或者使用用戶指定的嚴(yán)重度和狀態(tài)信息動態(tài)地生成一條消息。這條消息在定義后就作為服務(wù)器錯誤信息返回給客戶端。



    語法


    RAISERROR ( { msg_id | msg_str } { , severity , state }

        [ , argument [ ,...n ] ] )

        [ WITH option [ ,...n ] ]



    參數(shù)


    msg_id



    存儲于 sysmessages 表中的用戶定義的錯誤信息。用戶定義錯誤信息的錯誤號應(yīng)大于 50,000。由特殊消息產(chǎn)生的錯誤是第 50,000 號。


    msg_str



    是一條特殊消息,其格式與 C 語言中使用的 PRINTF 格式樣式相似。此錯誤信息最多可包含 400 個字符。如果該信息包含的字符超過 400 個,則只能顯示前 397 個并將添加一個省略號以表示該信息已被截?cái)?。所有特定消息的?biāo)準(zhǔn)消息 ID 是 14,000。


    msg_str 支持下面的格式:


    % [[flag] [width] [precision] [{h | l}]] type


    可在 msg_str 中使用的參數(shù)包括:


    flag


    用于確定用戶定義的錯誤信息的間距和對齊的代碼。







































    代碼前綴或?qū)R描述
    -(減)左對齊在給定字段寬度內(nèi)左對齊結(jié)果。
    +(加)+(加)或 -(減)前綴如果輸出值為帶符號類型,則在輸出值的前面加上加號(+)或減號(-)。
    0(零)零填充如果寬度的前面有 0,則添加零直到滿足最小寬度。若出現(xiàn) 0 和 -,將忽略 0。若使用整型格式(i, u, x, X, o, d)指定 0,則忽略 0。
    #(數(shù)字)對 x 或 X 的十六進(jìn)制類型使用 0x 前綴當(dāng)使用 o、x 或 X 格式時,# 標(biāo)志在任何非零值的前面分別加上 0、0x 或 0X。當(dāng) d、i 或 u 的前面有 # 標(biāo)記時,將忽略該標(biāo)記。
    ' '(空格)空格填充如果輸出值帶符號且為正,則在該值前加空格。如果包含在加號(+)標(biāo)記中,則忽略該標(biāo)記。



    width


    定義最小寬度的整數(shù)。星號 (*) 允許 precision 確定寬度。


    precision


    是輸出字段最多輸出的字符數(shù),或?yàn)檎麛?shù)值輸出的最小小數(shù)位數(shù)。星號 (*) 允許 argument 確定精度。


    {h | l} type


    與字符類型 d、i、o、x、X 或 u 一起使用,用于創(chuàng)建 short int (h) 或 long int (l) 類型的值。






































    字符類型表示
    d 或 I帶符號的整數(shù)
    o不帶符號的八進(jìn)制數(shù)
    p指針型
    sString
    u不帶符號的整數(shù)
    x 或 X不帶符號的十六進(jìn)制數(shù)



    說明  不支持 float、雙精度和單精度字符類型。



    severity



    用戶定義的與消息關(guān)聯(lián)的嚴(yán)重級別。用戶可以使用從 0 到 18 之間的嚴(yán)重級別。19 到 25 之間的嚴(yán)重級別只能由 sysadmin 固定服務(wù)器角色成員使用。若要使用 19 到 25 之間的嚴(yán)重級別,必須選擇 WITH LOG 選項(xiàng)。


    注意  20 到 25 之間的嚴(yán)重級別被認(rèn)為是致命的。如果遇到致命的嚴(yán)重級別,客戶端連接將在收到消息后終止,并將錯誤記入錯誤日志和應(yīng)用程序日志。



    state



    從 1 到 127 的任意整數(shù),表示有關(guān)錯誤調(diào)用狀態(tài)的信息。state 的負(fù)值默認(rèn)為 1。


    argument



    是用于取代在 msg_str 中定義的變量或取代對應(yīng)于 msg_id 的消息的參數(shù)。可以有 0 或更多的替代參數(shù);然而,替代參數(shù)的總數(shù)不能超過 20 個。每個替代參數(shù)可以是局部變量或這些任意數(shù)據(jù)類型:int1、int2int4、charvarchar、binaryvarbinary。不支持其它數(shù)據(jù)類型。


    option



    錯誤的自定義選項(xiàng)。option 可以是以下值之一:























    描述
    LOG將錯誤記入服務(wù)器錯誤日志和應(yīng)用程序日志。記入服務(wù)器錯誤日志的錯誤目前被限定為最多 440 字節(jié)。
    NOWAIT將消息立即發(fā)送給客戶端。
    SETERROR@@ERROR 的值設(shè)置為 msg_id 或 50000,與嚴(yán)重級別無關(guān)。



    注釋


    如果使用 sysmessages 錯誤并且是使用前面顯示的 msg_str 格式創(chuàng)建的消息,則將給所提供的 msg_id 的消息傳遞提供的參數(shù)(argument1、argument2 等等)。



    當(dāng)使用 RAISERROR 創(chuàng)建和返回用戶定義的錯誤信息時,使用 sp_addmessage 添加用戶定義的錯誤信息,使用 sp_dropmessage 刪除用戶定義的錯誤信息。



    當(dāng)出現(xiàn)錯誤時,錯誤號將放在 @@ERROR 函數(shù)中,該函數(shù)存儲最新生成的錯誤號。對于嚴(yán)重級別為 1 到 10 的消息,@@ERROR 的默認(rèn)設(shè)置為0。



    示例


    A. 創(chuàng)建特定消息


    下例顯示可能出現(xiàn)的兩種錯誤。第一種錯誤很簡單,生成的是靜態(tài)消息。第二種錯誤則是在嘗試修改的基礎(chǔ)上動態(tài)生成的。



    CREATE TRIGGER employee_insupd
    ON employee
    FOR INSERT, UPDATE
    AS
    /* Get the range of level for this job type from the jobs table. */
    DECLARE @@MIN_LVL tinyint,
      @@MAX_LVL tinyint,
      @@EMP_LVL tinyint,
      @@JOB_ID smallint
    SELECT @@MIN_LVl = min_lvl,
      @@MAX_LV = max_lvl,
      @@ EMP_LVL = i.job_lvl,
      @@JOB_ID = i.job_id
    FROM employee e, jobs j, inserted i
    WHERE e.emp_id = i.emp_id AND i.job_id = j.job_id
    IF (@@JOB_ID = 1) and (@@EMP_lVl <> 10)
    BEGIN
      RAISERROR ('Job id 1 expects the default level of 10.', 16, 1)
      ROLLBACK TRANSACTION
    END
    ELSE
    IF NOT @@ EMP_LVL BETWEEN @@MIN_LVL AND @@MAX_LVL)
    BEGIN
      RAISERROR ('The level for job_id:%d should be between %d and %d.',
        16, 1, @@JOB_ID, @@MIN_LVL, @@MAX_LVL)
      ROLLBACK TRANSACTION
    END


    B. 在 sysmessages 中創(chuàng)建特殊消息


    下例顯示如何通過執(zhí)行 employee_insupd 觸發(fā)器獲得與 RAISERROR 相同的效果,而 RAISERROR 使用給存儲在 sysmessages 表中的消息傳遞參數(shù)的方法。該消息通過 sp_addmessage 系統(tǒng)存儲過程,以消息號 50005 被添加到 sysmessages 表中。



    說明  下例僅供舉例說明。



    RAISERROR (50005, 16, 1, @@JOB_ID, @@MIN_LVL, @@MAX_LVL)
    相關(guān)文章
    本頁查看次數(shù):