ビューとストアド プロシージャの作成
新規 : 2006 年 4 月 14 日
Mary が TestData データベースにアクセスできるようになったので、ビューやストアド プロシージャのようなデータベース オブジェクトを作成し、Mary にこれらのオブジェクトへのアクセス権を付与できます。ビューは、格納された SELECT ステートメントで、ストアド プロシージャは、バッチとして実行される 1 つ以上の Transact-SQL ステートメントです。
ビューに対しては、テーブルと同じようにクエリが実行されます。パラメータは使用できません。ストアド プロシージャは、ビューよりも複雑です。ストアド プロシージャは、入力と出力のパラメータを指定でき、IF ステートメントや WHILE ステートメントなどの、コードの流れを制御するステートメントを含めることができます。データベース内でのすべての繰り返し操作には、ストアド プロシージャを使用することをお勧めします。
この例では、CREATE VIEW を使用して、Products テーブル内の 2 つの列だけを選択するビューを作成します。次に、CREATE PROCEDURE を使用して、価格のパラメータを受け入れ、指定されたパラメータ値よりも価格が安い製品のみを返すストアド プロシージャを作成します。
ビューを作成するには
次のステートメントを実行して、SELECT ステートメントを実行する非常に単純なビューを作成し、製品の名前と価格をユーザーに返します。
CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO
ビューのテスト
ビューはテーブルと同じように処理されます。ビューにアクセスするには
SELECT
ステートメントを使用します。SELECT * FROM vw_Names; GO
ストアド プロシージャを作成するには
次のステートメントでは、
pr_Names
という名前のストアド プロシージャを作成し、@VarPrice
という名前の、money
データ型の入力パラメータを受け入れます。このストアド プロシージャによって、money
データ型からvarchar(10)
文字データ型に変更される入力パラメータと連結されるステートメントProducts less than
が出力されます。次に、ビューに対してSELECT
ステートメントが実行され、WHERE
句の一部として入力パラメータが渡されます。これによって、入力パラメータ値よりも価格が安い製品がすべて返されます。CREATE PROCEDURE pr_Names @VarPrice money AS BEGIN -- The print statement returns text to the user PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10)); -- A second statement starts here SELECT ProductName, Price FROM vw_Names WHERE Price < @varPrice; END GO
ストアド プロシージャのテスト
ストアド プロシージャをテストするには、次のステートメントを入力して実行します。このプロシージャによって、レッスン 1 で
Products
テーブルに入力した、価格が10.00
より安い 2 つの製品の名前が返されます。EXECUTE pr_Names 10.00; GO
このレッスンの次の作業
参照
その他の技術情報
CREATE VIEW (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
流れ制御
Transact-SQL の手順