チュートリアル: Northwind の Customers テーブル用 Update ストアド プロシージャの作成
Visual Studio ドキュメントのヘルプ トピックがある Customers テーブルのデータを更新 (挿入更新および削除) を実行するにはNorthwind サンプル データベースの追加スト プロシージャが必要です。
このチュートリアルでは SQL Server の Northwind サンプル データベースで追加スト プロシージャを作成する手順について説明します。
このトピックの次の手順のセクションではこれらの追加スト プロシージャの使用方法を説明するトピックへのリンクを示します。
このチュートリアルでは、次のタスクを実行する方法を学習します。
Northwind サンプル データベースへのデータ接続を作成します。
スト プロシージャを作成します。
必須コンポーネント
このチュートリアルを完了するには、次の条件が必要です。
- Northwind サンプル データベースの SQL Server バージョンにアクセスします。詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Northwind データベースへの接続
このチュートリアルではNorthwind データベースの SQL Server バージョンへの接続が必要です。次の手順ではデータ接続を作成する手順について説明します。
[!メモ]
既に Northwind データベースへのデータ接続がある場合スト プロシージャを作成するには次のセクションに進むことができます。
Northwind SQL Server データベースへのデータ接続を作成するには
[表示] メニューの [サーバー エクスプローラー] または [データベース エクスプローラー] をクリックします。
データ接続 を右クリックし[ENT5ENT] をクリックします。
[データ ソースの選択] ダイアログ ボックスで、[Microsoft SQL Server] をクリックして [OK] をクリックします。
[接続の追加] ダイアログ ボックスが開き、[データ ソース] が [Microsoft SQL Server (SqlClient)] でない場合は、[変更] をクリックし、[データ ソースの選択] または [データ ソースの変更] ダイアログ ボックスを開いて、[Microsoft SQL Server] をクリックし、[OK] をクリックします。詳細については、「[データ ソースの選択]/[データ ソースの変更] ダイアログ ボックス」を参照してください。
ドロップダウン リストで [サーバー名] をクリックするか、Northwind データベースがあるサーバー名を入力します。
データベースまたはアプリケーションの要件に基づいてSQL Server を実行するコンピューター ()*** SQL Server Authentication *** にログオンするための特定のユーザー名とパスワードを ENT1ENT [] をクリックするかまたはを使用します。詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。
[データベース名の選択または入力] リストで Northwind データベースをクリックします。
[OK] をクリックします。
データ接続がサーバー エクスプローラーまたはデータベース エクスプローラーに追加されます。
ストアド プロシージャの作成
サーバー エクスプローラー と データベース エクスプローラー で Visual Database Tools を使用してNorthwind データベースに対して指定された SQL スクリプトを実行することによりスト プロシージャを作成します。
SQL スクリプトを使用してストアド プロシージャを作成するには
サーバー エクスプローラーまたはデータベース エクスプローラーで、Northwind データベースを展開します。
[入力] ENT1ENT ノードを右クリックし[ENT2ENT] をクリックします。
CREATE PROCEDURE テンプレートを置き換えるコード エディターに次のコードを貼り付けます :
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'SelectCustomers' AND user_name(uid) = 'dbo') DROP PROCEDURE dbo.[SelectCustomers] GO CREATE PROCEDURE dbo.[SelectCustomers] AS SET NOCOUNT ON; SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM dbo.Customers GO IF EXISTS (SELECT * FROM sysobjects WHERE name = 'InsertCustomers' AND user_name(uid) = 'dbo') DROP PROCEDURE dbo.InsertCustomers GO 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) GO IF EXISTS (SELECT * FROM sysobjects WHERE name = 'UpdateCustomers' AND user_name(uid) = 'dbo') DROP PROCEDURE dbo.UpdateCustomers GO 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) GO IF EXISTS (SELECT * FROM sysobjects WHERE name = 'DeleteCustomers' AND user_name(uid) = 'dbo') DROP PROCEDURE dbo.DeleteCustomers GO CREATE PROCEDURE dbo.DeleteCustomers ( @Original_CustomerID nchar(5) ) AS SET NOCOUNT OFF; DELETE FROM [dbo].[Customers] WHERE (([CustomerID] = @Original_CustomerID)) GO
コード エディターのすべてのテキストを選択し選択したテキストを右クリックしを ENT1ENT [] をクリックします。
SelectCustomersInsertCustomersUpdateCustomersDeleteCustomers スト プロシージャはNorthwind データベースに作成されます。
次の手順
スト プロシージャを作成したのでその使用方法を次のチュートリアルを実行します :
How to: Assign Stored Procedures to Perform Updates, Inserts, and Deletes
Walkthrough: Creating LINQ to SQL Classes with the O/R Designer
Walkthrough: Customizing the Insert, Update, and Delete Behavior of Entity Classes