次の方法で共有


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

Mary が TestData データベースにアクセスできるようになったので、ビューやストアド プロシージャなど、いくつかのデータベース オブジェクトを作成し、Mary にアクセス権を付与することができます。 ビューは、格納された SELECT ステートメントで、ストアド プロシージャは、バッチとして実行される 1 つ以上の Transact-SQL ステートメントです。

ビューはテーブルのように照会され、パラメーターを受け入れません。 ストアド プロシージャは、ビューよりも複雑です。 ストアド プロシージャは、入力と出力のパラメーターを指定でき、IF ステートメントや WHILE ステートメントなどの、コードの流れを制御するステートメントを含めることができます。 データベース内でのすべての繰り返し操作には、ストアド プロシージャを使用することをお勧めします。

この例では、CREATE VIEW を使用して、 Products テーブル内の 2 つの列のみを選択するビューを作成します。 次に、CREATE PROCEDURE を使用して、価格パラメーターを受け取り、指定されたパラメーター値より低コストの製品のみを返すストアド プロシージャを作成します。

ビューを作成するには

  1. 次のステートメントを実行して、select ステートメントを実行し、製品の名前と価格をユーザーに返す非常に単純なビューを作成します。

    CREATE VIEW vw_Names  
       AS  
       SELECT ProductName, Price FROM Products;  
    GO  
    
    

ビューのテスト

  1. ビューはテーブルと同じように処理されます。 ビューにアクセスするには SELECT ステートメントを使用します。

    SELECT * FROM vw_Names;  
    GO  
    
    

ストアド プロシージャを作成するには

  1. 次のステートメントでは、 pr_Namesという名前のストアド プロシージャを作成し、 @VarPrice という名前の、 moneyデータ型の入力パラメーターを受け入れます。 このストアド プロシージャによって、 Products less than データ型から money 文字データ型に変更される入力パラメーターと連結されるステートメント varchar(10) が出力されます。 次に、ビューに対して 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. ストアド プロシージャをテストするには、次のステートメントを入力して実行します。 このプロシージャによって、レッスン 1 で Products テーブルに入力した、価格が 10.00より安い 2 つの製品の名前が返されます。

    EXECUTE pr_Names 10.00;  
    GO  
    
    

このレッスンの次の作業

データベース オブジェクトへのアクセス権の付与

こちらもご覧ください

CREATE VIEW (Transact-SQL)
プロシージャを作成 (Transact-SQL)