始める無料で始める

メッセージ文字列での 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;
コードを編集して実行