ストアド プロシージャの操作

公開日: 2009 年 3 月 18 日 (作業者: iisteam (英語))

更新日: 2009 年 5 月 27 日 (作業者: iisteam (英語))

必要条件

このチュートリアルでは、次のような環境を前提としています。

  1. IIS Database Manager が Web サーバーにインストールされていること。
  2. データベース サーバー (Web サーバーと同じ物理コンピューター上でも可)。

ステージのセットアップ

このチュートリアルの手順は、あらゆるデータベースの展開に適用できる一般的なものです。ここでは、「テーブルの操作」という別のチュートリアルで作成したテーブルを使用して、新しいプロシージャを作成する方法、および既存のプロシージャを管理または削除する方法について説明します。

新しいストアド プロシージャの作成

前の例に基づいて、"FabrikamUsers" および "AccessControls" テーブルのデータを表示するストアド プロシージャを作成します。このストアド プロシージャは、ユーザー名に関連付けられているすべてのリソースを取得します。新しいストアド プロシージャを作成するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。

  3. [ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャ] をクリックします。新しいクエリ エディターが表示されます。参考のために CREATE PROCEDURE テンプレートがあらかじめ入力されています。
    Ff454136.Fig1-NewSPIcon(ja-jp,TechNet.10).png

  4. "Procedure_Name" を "GetUserResources" に置き換えます。

  5. テンプレートのパラメーター テキストを、必要なパラメーターのみのテキストに置き換えます。

    @Username VARCHAR(50)
    
  6. BEGIN と END で囲まれたストアド プロシージャのボディに、次のクエリを入力します。
    Ff454136.Fig2-NewSPEditor(ja-jp,TechNet.10).png

  7. クエリ エディターのツールバーにある [実行] をクリックします。これで、ストアド プロシージャが作成されます。ストアド プロシージャが作成されたことを確認するには、[ストアド プロシージャ] ノードの下に表示されるストアド プロシージャの一覧を調べます。

    注: この場合、[実行] ボタンをクリックすると、CREATE PROCEDURE スクリプトが実行され、ストアド プロシージャの保存メカニズムとして機能します。

    Ff454136.Fig3-ExecSP(ja-jp,TechNet.10).png

既存のストアド プロシージャの変更

Database Manager を使用すると、作成済みのストアド プロシージャを変更できます。前の「新しいストアド プロシージャの作成」の例を使用して、ストアド プロシージャを編集する方法を示します。GetUserResources ストアド プロシージャに新しいパラメーターを追加します。ストアド プロシージャを編集するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。

  3. [ストアド プロシージャ] ノードを展開します。"GetUserResources" を含む、すべてのデータベース ストアド プロシージャの一覧が表示されます。

  4. "GetUserResources" ストアド プロシージャを選択します。

  5. Database Manager のツールバーで、[ALTER としてスクリプト化] をクリックします。クエリ エディターが開き、ストアド プロシージャの変更に必要な ALTER PROCEDURE テンプレートが表示されます。
    Ff454136.Fig4-AlterSPIcon(ja-jp,TechNet.10).png

  6. @Username パラメーターの下に、次のテキストを使用してパラメーターを追加します。

    @Username VARCHAR(50), @IsUserAllowed BIT 
    

    注: 最初の変数の後に、コンマを追加することを忘れないでください。

  7. BEGIN と END で囲まれたストアド プロシージャのボディで、次のようにクエリを変更します。

    SELECT FabrikamUsers.Username, AccessControls.ResourceURL, AccessControls.IsUserAllowed
    FROM FabrikamUsers
    INNER JOIN AccessControls ON (FabrikamUsers.UserId = AccessControls.UserId)
    WHERE FabrikamUsers.Username = @Username 
    AND AccessControls.IsUserAllowed = @IsUserAllowed 
    

    Ff454136.Fig5-AlterSPEditor(ja-jp,TechNet.10).png

  8. クエリ エディターのツールバーにある [実行] をクリックします。これで、ストアド プロシージャが変更されます。

    注: この場合、[実行] ボタンをクリックすると、ALTER PROCEDURE スクリプトが実行され、ストアド プロシージャの変更の保存メカニズムとして機能します。

  9. エディターでさらに変更作業を行うことも、エディターを終了することもできます。

既存のストアド プロシージャに基づく新しいストアド プロシージャの作成

Database Manager では、既存のストアド プロシージャのコードに基づく新しいストアド プロシージャを作成できます。この機能は、ストアド プロシージャの [名前を付けて保存] 操作に例えることができます。既存のストアド プロシージャに基づいて新しいストアド プロシージャを作成するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。

  3. [ストアド プロシージャ] ノードを展開します。すべてのデータベース ストアド プロシージャの一覧が表示されます。

  4. 新しいストアド プロシージャの基にする既存のストアド プロシージャを選択します。

  5. Database Manager のツールバーで、[CREATEとしてスクリプト化] をクリックします。クエリ エディターが開き、既存のストアド プロシージャと同じシグネチャとボディを持つ CREATE ストアド プロシージャが表示されます。
    Ff454136.Fig6-AsCreateSPIcon(ja-jp,TechNet.10).png

  6. 最初の行で CREATE PROCEDURE の後の名前を変更し、プロシージャ名を変更します。
    Ff454136.Fig7-AsCreateEditor(ja-jp,TechNet.10).png

  7. ストアド プロシージャに変更を加え、[実行] をクリックします。新しいストアド プロシージャが作成されます。[ストアド プロシージャ] ノードに表示されることで確認できます。

    注: ストアド プロシージャの名前を変更しない場合、ステートメントを実行できません。

ストアド プロシージャの実行

Database Manager を使用して、ストアド プロシージャを実行できます。例として、GetUserResources ストアド プロシージャを実行して、その結果を表示します。ストアド プロシージャを実行するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。
  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
  3. [ストアド プロシージャ] ノードを展開します。"GetUserResources" を含む、すべてのデータベース ストアド プロシージャの一覧が表示されます。
  4. "GetUserResources" ストアド プロシージャを選択します。
  5. Database Manager のツールバーで、[ストアド プロシージャの実行] をクリックします。ストアド プロシージャのパラメーターを要求するダイアログ ボックスが表示されます。
    Ff454136.Fig8-ExecSPIcon(ja-jp,TechNet.10).png
  6. ストアド プロシージャの呼び出しのパラメーターを入力し、[OK] をクリックしてダイアログ ボックスを閉じます。"GetUserResources" の場合、ユーザー名として VARCHAR 値を、IsUserAllowed パラメーターとしてブール値を入力する必要があります。
    Ff454136.Fig9-ExecSPDialog(ja-jp,TechNet.10).png
  7. クエリ エディター ウィンドウが開き、ストアド プロシージャの呼び出しに使用された EXEC ステートメントが表示されます。下のウィンドウには、ストアド プロシージャによって返された結果が表示されます。
    Ff454136.Fig10-ExecSPEditor(ja-jp,TechNet.10).png
  8. エディターで引数の値を変更し、もう一度クエリを実行することもできます。

既存のストアド プロシージャの削除

Database Manager を使用して、既存のストアド プロシージャを削除できます。ストアド プロシージャを削除するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。
  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
  3. [ストアド プロシージャ] ノードを展開します。すべてのデータベース ストアド プロシージャの一覧が表示されます。
  4. 削除するストアド プロシージャを選択します。
  5. 右クリックし、[削除] をクリックします。操作の確認を求められます。
    Ff454136.Fig11-DeleteSPIcon(ja-jp,TechNet.10).png
  6. [はい] をクリックすると、ストアド プロシージャが削除されます。ストアド プロシージャが削除されたことを確認するには、[ストアド プロシージャ] ノードの下に表示されるストアド プロシージャの一覧を調べます。

関連コンテンツ

記事