ストアド プロシージャの操作
公開日: 2009 年 3 月 18 日 (作業者: iisteam (英語))
更新日: 2009 年 5 月 27 日 (作業者: iisteam (英語))
必要条件
このチュートリアルでは、次のような環境を前提としています。
- IIS Database Manager が Web サーバーにインストールされていること。
- データベース サーバー (Web サーバーと同じ物理コンピューター上でも可)。
ステージのセットアップ
このチュートリアルの手順は、あらゆるデータベースの展開に適用できる一般的なものです。ここでは、「テーブルの操作」という別のチュートリアルで作成したテーブルを使用して、新しいプロシージャを作成する方法、および既存のプロシージャを管理または削除する方法について説明します。
新しいストアド プロシージャの作成
前の例に基づいて、"FabrikamUsers" および "AccessControls" テーブルのデータを表示するストアド プロシージャを作成します。このストアド プロシージャは、ユーザー名に関連付けられているすべてのリソースを取得します。新しいストアド プロシージャを作成するには、次の手順を実行します。
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
[ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャ] をクリックします。新しいクエリ エディターが表示されます。参考のために CREATE PROCEDURE テンプレートがあらかじめ入力されています。
"Procedure_Name" を "GetUserResources" に置き換えます。
テンプレートのパラメーター テキストを、必要なパラメーターのみのテキストに置き換えます。
@Username VARCHAR(50)
BEGIN と END で囲まれたストアド プロシージャのボディに、次のクエリを入力します。
クエリ エディターのツールバーにある [実行] をクリックします。これで、ストアド プロシージャが作成されます。ストアド プロシージャが作成されたことを確認するには、[ストアド プロシージャ] ノードの下に表示されるストアド プロシージャの一覧を調べます。
注: この場合、[実行] ボタンをクリックすると、CREATE PROCEDURE スクリプトが実行され、ストアド プロシージャの保存メカニズムとして機能します。
既存のストアド プロシージャの変更
Database Manager を使用すると、作成済みのストアド プロシージャを変更できます。前の「新しいストアド プロシージャの作成」の例を使用して、ストアド プロシージャを編集する方法を示します。GetUserResources ストアド プロシージャに新しいパラメーターを追加します。ストアド プロシージャを編集するには、次の手順を実行します。
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
[ストアド プロシージャ] ノードを展開します。"GetUserResources" を含む、すべてのデータベース ストアド プロシージャの一覧が表示されます。
"GetUserResources" ストアド プロシージャを選択します。
Database Manager のツールバーで、[ALTER としてスクリプト化] をクリックします。クエリ エディターが開き、ストアド プロシージャの変更に必要な ALTER PROCEDURE テンプレートが表示されます。
@Username パラメーターの下に、次のテキストを使用してパラメーターを追加します。
@Username VARCHAR(50), @IsUserAllowed BIT
注: 最初の変数の後に、コンマを追加することを忘れないでください。
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
クエリ エディターのツールバーにある [実行] をクリックします。これで、ストアド プロシージャが変更されます。
注: この場合、[実行] ボタンをクリックすると、ALTER PROCEDURE スクリプトが実行され、ストアド プロシージャの変更の保存メカニズムとして機能します。
エディターでさらに変更作業を行うことも、エディターを終了することもできます。
既存のストアド プロシージャに基づく新しいストアド プロシージャの作成
Database Manager では、既存のストアド プロシージャのコードに基づく新しいストアド プロシージャを作成できます。この機能は、ストアド プロシージャの [名前を付けて保存] 操作に例えることができます。既存のストアド プロシージャに基づいて新しいストアド プロシージャを作成するには、次の手順を実行します。
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
[ストアド プロシージャ] ノードを展開します。すべてのデータベース ストアド プロシージャの一覧が表示されます。
新しいストアド プロシージャの基にする既存のストアド プロシージャを選択します。
Database Manager のツールバーで、[CREATEとしてスクリプト化] をクリックします。クエリ エディターが開き、既存のストアド プロシージャと同じシグネチャとボディを持つ CREATE ストアド プロシージャが表示されます。
最初の行で CREATE PROCEDURE の後の名前を変更し、プロシージャ名を変更します。
ストアド プロシージャに変更を加え、[実行] をクリックします。新しいストアド プロシージャが作成されます。[ストアド プロシージャ] ノードに表示されることで確認できます。
注: ストアド プロシージャの名前を変更しない場合、ステートメントを実行できません。
ストアド プロシージャの実行
Database Manager を使用して、ストアド プロシージャを実行できます。例として、GetUserResources ストアド プロシージャを実行して、その結果を表示します。ストアド プロシージャを実行するには、次の手順を実行します。
- インターネット インフォメーション サービス (IIS) マネージャーを開きます。
- Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
- [ストアド プロシージャ] ノードを展開します。"GetUserResources" を含む、すべてのデータベース ストアド プロシージャの一覧が表示されます。
- "GetUserResources" ストアド プロシージャを選択します。
- Database Manager のツールバーで、[ストアド プロシージャの実行] をクリックします。ストアド プロシージャのパラメーターを要求するダイアログ ボックスが表示されます。
- ストアド プロシージャの呼び出しのパラメーターを入力し、[OK] をクリックしてダイアログ ボックスを閉じます。"GetUserResources" の場合、ユーザー名として VARCHAR 値を、IsUserAllowed パラメーターとしてブール値を入力する必要があります。
- クエリ エディター ウィンドウが開き、ストアド プロシージャの呼び出しに使用された EXEC ステートメントが表示されます。下のウィンドウには、ストアド プロシージャによって返された結果が表示されます。
- エディターで引数の値を変更し、もう一度クエリを実行することもできます。
既存のストアド プロシージャの削除
Database Manager を使用して、既存のストアド プロシージャを削除できます。ストアド プロシージャを削除するには、次の手順を実行します。
- インターネット インフォメーション サービス (IIS) マネージャーを開きます。
- Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
- [ストアド プロシージャ] ノードを展開します。すべてのデータベース ストアド プロシージャの一覧が表示されます。
- 削除するストアド プロシージャを選択します。
- 右クリックし、[削除] をクリックします。操作の確認を求められます。
- [はい] をクリックすると、ストアド プロシージャが削除されます。ストアド プロシージャが削除されたことを確認するには、[ストアド プロシージャ] ノードの下に表示されるストアド プロシージャの一覧を調べます。