問題タブ [raiserror]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - ストアド プロシージャ - ユーザー アプリケーションにメッセージを返す最良の方法
ストアド プロシージャで RAISERROR を使用してユーザー メッセージ (つまり、エラー メッセージではなくビジネス関連のメッセージ) をアプリケーションに返すことについて、人々がどう考えているか知りたいです。
私の会社の上級開発者の何人かは、このメソッドを使用して、C# コードで SqlException をキャッチし、メッセージを取得してユーザーに表示しています。私はこの方法に満足しておらず、ストアド プロシージャからのこれらのタイプのユーザー メッセージを他の人がどのように処理しているかを知りたいと思っています。
sql-server - raiserror() から生成されたエラー メッセージを SQL Server で表示する方法
JDBC を介して jsp から SQL Server 2005 と対話しています (これは実際のプロジェクトではなく割り当てです)。使用しているデータベースにトリガーを作成しました。このトリガーの実行時に特定の条件が満たされない場合、raiserror() を介してエラーを発生させます。JDBC 経由で SQL Server クエリを呼び出す実際のページにこのエラーを表示したいのですが、現在、SQLException.getMessage() の結果を出力すると、次のデフォルト メッセージが表示されます。
トランザクションはトリガーで終了しました。バッチは中止されました。
トリガーコードで実際に raiserror に渡したテキストを抽出する方法を知っている人はいますか? 私はすでに試しました:
- SQLException.getState()
- SQLException.getNextException()
- SQLException.getCause()
- SQLException.toString()
sql - SYBASEASE12.5でのRAISERRORメッセージのフォーマット
ストアドプロシージャで、パラメータがnullまたは1未満であるかどうかをテストしようとしています。そうである場合は、わかりやすいメッセージとパラメータの値でエラーが発生します。
これが私のコードです:
私が返したいのは次のいずれかです。
「IDは0です。IDをnullまたはゼロ未満にすることはできません。」 または 「IDがnullです。IDをnullまたはゼロ未満にすることはできません。」
varcharを作成して、次のようなエラーを発生させてみました。
ただし、 「RAISERRORに渡されたメッセージ番号27001は、sysmessagesカタログに存在しません」というエラーが発生します。
sql-server - さまざまな RAISERROR 重大度レベルは何を意味しますか?
私の最高のグーグルの結果はこれでした:
- 11 未満は警告であり、エラーではありません
- 11~16台使用可能
- 16 以上はシステム エラーです。
- 11~16歳の間に行動の違いはありません
しかし、BOL からは、「0 から 18 までの重大度レベルは、任意のユーザーが指定できます」とのことです。
私の特定のストアド プロシージャでは、エラーを .Net クライアント アプリケーションに返す必要があるため、11 ~ 18 の重大度レベルでうまくいくように見えます。各レベルが何を意味し、どのように使用すべきかについて、信頼できる情報を持っている人はいますか?
tsql - T-SQL の TRY と RAISERROR
小さな問題があり、これらを正しく使用しているかどうか疑問に思っています。
私のSQLスクリプトには
ただし、これはエラーが発生したため、残りのスクリプトを続行しています。私は何が欠けていますか?ありがとう!
sql - RAISERROR を使用した SQL ステートメントの終了
(SQL 2005) レイザー エラーがストアド プロシージャを終了することは可能ですか。
たとえば、大規模なシステムで、予期しない値が特定の列に入力されたとします。更新トリガーで次のように記述します。
存在する場合 (select * from inserted where testcol = 7) begin raiseerror('My Custom Error', 16, 1) end
更新情報は引き続き適用されます。ただし、実行すると
存在する場合 (select * from inserted where testcol = 7) begin select 1/0 end
実際に更新を終了する 0 による除算エラーがスローされます。カスタムエラーメッセージを取得できるように、raiseerror でこれを行う方法はありますか?
c# - プロシージャ (SQL Server 2005) の Raiserror がクライアント側の更新プロセスでキャッチされない (c#)
RAISERROR でストアド プロシージャを使用しています。SP によって発生したエラーは、c#.Net の try catch ステートメントではキャッチされません。SQL 接続に SqlDataSource を使用し、データを更新するために SqlDataSource_Updating イベントを使用しています。
SQL コード:
c# コード:
SQL データソース:
よろしく ジーサ
sql - cfstoredproc からの RAISEERROR メッセージへのアクセス
状況によっては、失敗した場合に -1 の結果を返す SQL ストアド プロシージャがありますが、RAISERROR コマンドを介してメッセージを返します。
cfstoredproc を使用して coldfusion 経由でこれにアクセスしています。
ただし、返される構造には、ExecutionTime キーと StatusCode キーしか含まれていません。返されたエラー メッセージにアクセスする方法はありますか。例) ユーザーに表示する。
ありがとう、
トム
ps 「cfstoredproc」でタグ付けしますが、新しいタグを作成できません。
sql-server - sqlraiseerrorerror.numberがVBで間違っています
有効なEmployeeNoのテストを含むT-SQLクエリを作成しました。EmployeeNoが有効でない場合は、次のようにします。
VB.Netに戻って、SQL例外をテストしたところ、従業員番号が無効な場合、error.numberは予想どおり5005ではなく、2732であることがわかりました。
これの説明は何ですか?
ありがとうございました。
sql-server-2005 - T-SQL-カスタムエラーメッセージを返し、クエリを終了します
次のようなことをしたい長いストアドプロシージャがあります。
基本的に、変数がNULL
であるかどうかを確認し、そうである場合は、.NET Webアプリケーションにエラーメッセージを返し、その段階でクエリの実行を停止します。どうすればこれを達成できますか?