問題タブ [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 - 動的 SQL と RAISERROR
内で 5 つの動的 SQL 挿入を実行していますTRY CATCH
が、CATCH
ブロックは、このコードを実行する親ストアド プロシージャに、失敗した可能性があることを知らせません。RAISERROR
エラーが発生した場合にフラグを立てるために、各動的 SQL の後に追加する必要があります。
各 dSQL は次で終了します
それぞれの後に を呼び出しますかRAISERROR
、それとも で 1 つだけ必要CATCH
ですか?
ありがとう
triggers - tSQLt、トリガー、およびテスト
私はこれに頭を悩ませようとしましたが、うまくいかないので、ここに小さなテストケースを提示します。誰かが私に説明してくれることを願っています:
最初の小さなテスト データベース:
そして、ここに動作をテストするためのtSQLテストがあります:
このテストは正常に実行されますが、トリガーは私が望むことを行いません: ユーザーが値 > 10 を入力できないようにします。このバージョンのトリガーは、私が望むことを行います:
しかし、今度はテストが失敗し、A) エラーが発生した (これは予期されていたことです!)、B) ROLLBACK TRANSACTION に一致する BEGIN TRANSACTION が存在しないと述べています。この最後のエラーは tSQLt を取り囲むトランザクションに関連していると思いますが、私のトリガーが何らかの形でそれを妨害していると思いますが、私が期待するものではないことは確かです。
誰かが説明してくれますか?