次の方法で共有


ビューとストアド プロシージャの作成

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