チュートリアル: Northwind の Customers テーブル用ストアド プロシージャの作成
更新 : 2011 年 4 月
このチュートリアルでは、Northwind サンプル データベースに 4 つのストアド プロシージャを作成する方法について説明します。 ストアド プロシージャにより、データベースで顧客を選択、挿入、更新、および削除できるようになります。
「次の手順」では、これらのストアド プロシージャの使用方法を説明するトピックへのリンクを示します。
必須コンポーネント
このチュートリアルを完了するには、次の条件が必要です。
- Northwind サンプル データベースの SQL Server バージョンにアクセスします。 詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Northwind データベースへの接続
ストアド プロシージャを作成する前に、Northwind データベースの SQL Server バージョンに接続する必要があります。 次の手順では、データ接続を作成する方法を説明します。
注意
Northwind データベースへのデータ接続が既にある場合は、次の「ストアド プロシージャの作成」に進むことができます。
Northwind SQL Server データベースへのデータ接続を作成するには
[表示] メニューの [サーバー エクスプローラー] または [データベース エクスプローラー] をクリックします。
[データ接続] を右クリックし、[接続の追加] をクリックします。
[データ ソースの選択] ダイアログ ボックスで、[Microsoft SQL Server] をクリックして [OK] をクリックします。
[接続の追加] ダイアログ ボックスが開き、[データ ソース] が [Microsoft SQL Server (SqlClient)] でない場合は、[変更] をクリックし、[データ ソースの選択] または [データ ソースの変更] ダイアログ ボックスを開いて、[Microsoft SQL Server] をクリックし、[OK] をクリックします。 詳細については、「[データ ソースの選択]/[データ ソースの変更] ダイアログ ボックス」を参照してください。
ドロップダウン リストで [サーバー名] をクリックするか、Northwind データベースがあるサーバー名を入力します。
データベースまたはアプリケーションの要件に基づいて、[Windows 認証を使用する] をクリックするか、または特定のユーザー名とパスワードを使用して、SQL Server を実行しているコンピューターにログオンします (SQL Server 認証)。 詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。
[データベース名の選択または入力] リストで Northwind データベースをクリックします。
[OK] をクリックします。
データ接続がサーバー エクスプローラーまたはデータベース エクスプローラーに追加されます。
ストアド プロシージャの作成
サーバー エクスプローラーまたはデータベース エクスプローラーに用意されている Visual Database Tools を使用してストアド プロシージャを作成します。
SQL スクリプトを使用してストアド プロシージャを作成するには
サーバー エクスプローラーまたはデータベース エクスプローラーで、Northwind データベースを展開します。
次のタスクを実行して、SelectCustomers ストアド プロシージャを定義します。
[ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。
CREATE PROCEDURE テンプレートを次のコードで置き換えます。
CREATE PROCEDURE dbo.[SelectCustomers] AS SET NOCOUNT ON; SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM dbo.Customers
プロシージャを保存します。
Northwind データベースに SelectCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。
次のタスクを実行して、InsertCustomers ストアド プロシージャを定義します。
[ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。
CREATE PROCEDURE テンプレートを次のコードで置き換えます。
CREATE PROCEDURE dbo.InsertCustomers ( @CustomerID nchar(5), @CompanyName nvarchar(40), @ContactName nvarchar(30), @ContactTitle nvarchar(30), @Address nvarchar(60), @City nvarchar(15), @Region nvarchar(15), @PostalCode nvarchar(10), @Country nvarchar(15), @Phone nvarchar(24), @Fax nvarchar(24) ) AS SET NOCOUNT OFF; INSERT INTO [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], [City], [Region], [PostalCode], [Country], [Phone], [Fax]) VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)
プロシージャを保存します。
Northwind データベースに InsertCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。
次のタスクを実行して、UpdateCustomers ストアド プロシージャを定義します。
[ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。
CREATE PROCEDURE テンプレートを次のコードで置き換えます。
CREATE PROCEDURE dbo.UpdateCustomers ( @CustomerID nchar(5), @CompanyName nvarchar(40), @ContactName nvarchar(30), @ContactTitle nvarchar(30), @Address nvarchar(60), @City nvarchar(15), @Region nvarchar(15), @PostalCode nvarchar(10), @Country nvarchar(15), @Phone nvarchar(24), @Fax nvarchar(24), @Original_CustomerID nchar(5) ) AS SET NOCOUNT OFF; UPDATE [dbo].[Customers] SET [CustomerID] = @CustomerID, [CompanyName] = @CompanyName, [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, [Address] = @Address, [City] = @City, [Region] = @Region, [PostalCode] = @PostalCode, [Country] = @Country, [Phone] = @Phone, [Fax] = @Fax WHERE (([CustomerID] = @Original_CustomerID)); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)
プロシージャを保存します。
Northwind データベースに UpdateCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。
次のタスクを実行して、DeleteCustomers ストアド プロシージャを定義します。
[ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。
CREATE PROCEDURE テンプレートを次のコードで置き換えます。
CREATE PROCEDURE dbo.DeleteCustomers ( @Original_CustomerID nchar(5) ) AS SET NOCOUNT OFF; DELETE FROM [dbo].[Customers] WHERE (([CustomerID] = @Original_CustomerID))
プロシージャを保存します。
Northwind データベースに DeleteCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。
次の手順
次のチュートリアルでは、作成したストアド プロシージャを使用する方法について説明します。
方法 : 更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)
チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)
チュートリアル : エンティティ クラスの挿入、更新、および削除の動作のカスタマイズ
注意
このチュートリアルを繰り返す場合は、まず、定義したストアド プロシージャを削除する必要があります。 削除していない場合、"データベースに 'ProcedureName' という名前のオブジェクトが既に存在します。" というエラー メッセージが表示されます。
参照
その他の技術情報
オブジェクト リレーショナル デザイナー (O/R デザイナー)
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 4 月 |
ストアド プロシージャを作成する手順の誤りを修正。 |
カスタマー フィードバック |