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
データ型の入力パラメーターを受け入れます。 このストアド プロシージャによって、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 で
Products
テーブルに入力した、価格が10.00
より安い 2 つの製品の名前が返されます。EXECUTE pr_Names 10.00; GO