ドラッグドロップ
注:この質問は、同じシナリオを使用する一連の質問の一部です。あなたの便宜のために、シナリオは各質問で繰り返されます。各質問には異なる目標と回答の選択肢がありますが、シナリオのテキストはこのシリーズの各質問で全く同じです。
お客様の注文を追跡するデータベースを開発しています。データベースには、次の表が含まれています。
Sales.Customers、Sales.Orders、およびSales.OrderLinesです。次の表では、Sales.Customersの列について説明します。

次の表では、Sales.Ordersの列について説明します。

次の表では、Sales.OrderLinesの列について説明します。

Customersテーブルにデータを挿入するストアドプロシージャを作成する必要があります。ストアドプロシージャは、次の要件を満たしている必要があります。
データ変更は単一の作業単位として行われます。

成功したデータ変更はコミットされ、値0が返されます。

失敗したデータの変更はロールバックされます。例外の重大度は16に設定され、

-1の値が返されます。
ストアド・プロシージャは、組み込みのスカラー関数を使用してデータの現在の状態を評価します

変更。
実行中に実行時エラーが発生すると、作業単位全体が終了し、ロールバックされます。

ストアドプロシージャ。
ストアドプロシージャ定義をどのように完了する必要がありますか?これを解決するには、適切なTransact-SQLセグメントを正しいターゲットにドラッグします。各Transact-SQLセグメントは、1回、複数回、またはまったく使用されません。コンテンツを表示するには、分割バーをペインの間にドラッグするかスクロールする必要があります。
注:それぞれの正しい選択は1つの点で価値があります。
選択と配置:

正解:

説明/参照:
Explanation:
ボックス1:XACT_ABORT
XACT_ABORTは、Transact-SQL文が実行時エラーを発生させたときにSQL Serverが自動的に現在のトランザクションをロールバックするかどうかを指定します。
SET XACT_ABORTがONの場合、Transact-SQL文が実行時エラーを発生させると、トランザクション全体が終了してロールバックされます。
ボックス2:COMMIT
トランザクションをコミットします。
ボックス3:XACT_STATE
ボックス4:ロールバック
トランザクションのロールバック
ボックス5:スロー
THROWは例外を発生させ、重大度は16に設定されます。
要件:失敗したデータ変更はロールバックされます。例外の重大度は16に設定され、-1の値が返されます。
参考文献:
https://msdn.microsoft.com/en-us/library/ms188792.aspx
https://msdn.microsoft.com/en-us/library/ee677615.aspx