20

小さな問題があり、これらを正しく使用しているかどうか疑問に思っています。

私のSQLスクリプトには

BEGIN TRY
    // check some information and if there are certains errors
    RAISERROR ('Errors found, please fix these errors and retry', 1, 2) WITH SETERROR

    // Complete normal process if no errors encountered above
    PRINT 'IMPORT SUCCEEDED'
END TRY
BEGIN CATCH
    PRINT 'IMPORT ABORTED. ERRORS ENCOUNTERED'
END CATCH

ただし、これはエラーが発生したため、残りのスクリプトを続行しています。私は何が欠けていますか?ありがとう!

4

3 に答える 3

5

MSDN から


重大度

このメッセージに関連付けられているユーザー定義の重大度です。0 から 18 までの重大度レベルは、すべてのユーザーが使用できます。19 ~ 25 の重大度レベルは、sysadmin 固定サーバー ロールのメンバーのみが使用します。19 から 25 までの重大度レベルでは、WITH LOG オプションが必要です。

注意 重大度 20 ~ 25 は致命的と見なされます。致命的な重大度レベルに達した場合、クライアント接続はメッセージの受信後に終了し、エラーはエラー ログとアプリケーション ログに記録されます。


代わりにこれを試してください:

RAISERROR ('Errors found, please fix these errors and retry', 1, 2) WITH SETERROR
RETURN
于 2009-10-23T15:07:34.233 に答える