メッセージ文字列での FORMATMESSAGE
お店で自転車を販売するたびに、在庫が十分にあるかを確認する必要があります。十分な在庫がない場合にエラーを投げるチェック用スクリプトを用意します。
この演習はコースの一部です
SQL Server におけるトランザクションとエラー処理
演習の手順
@sold_bikesを@current_stockより大きい値(例: 100)に設定します。FORMATMESSAGEを使ってエラーをカスタマイズします。最初のパラメーターはテキスト 'There are not enough %s bikes. You have %d in stock.'、2番目のパラメーターは@product_name、3番目のパラメーターは@current_stockにします。THROW文には@my_message変数を渡し、コードを実行する をクリックします(Run Solution ではありません)。エラーが表示されます。DECLARE文の@sold_bikesを 10 に戻します。エラーなしでコードを実行します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
DECLARE @product_name AS NVARCHAR(50) = 'Trek CrossRip+ - 2018';
-- Set the number of sold bikes
DECLARE @sold_bikes AS INT = ___;
DECLARE @current_stock INT;
SELECT @current_stock = stock FROM products WHERE product_name = @product_name;
DECLARE @my_message NVARCHAR(500) =
-- Customize the error message
FORMATMESSAGE(___, ___, ___);
IF (@current_stock - @sold_bikes < 0)
-- Throw the error
THROW 50000, ___, 1;