次の方法で共有


チュートリアル: Northwind の Customers テーブル用ストアド プロシージャの作成

更新 : 2011 年 4 月

このチュートリアルでは、Northwind サンプル データベースに 4 つのストアド プロシージャを作成する方法について説明します。 ストアド プロシージャにより、データベースで顧客を選択、挿入、更新、および削除できるようになります。

「次の手順」では、これらのストアド プロシージャの使用方法を説明するトピックへのリンクを示します。

必須コンポーネント

このチュートリアルを完了するには、次の条件が必要です。

Northwind データベースへの接続

ストアド プロシージャを作成する前に、Northwind データベースの SQL Server バージョンに接続する必要があります。 次の手順では、データ接続を作成する方法を説明します。

注意

Northwind データベースへのデータ接続が既にある場合は、次の「ストアド プロシージャの作成」に進むことができます。

Northwind SQL Server データベースへのデータ接続を作成するには

  1. [表示] メニューの [サーバー エクスプローラー] または [データベース エクスプローラー] をクリックします。

  2. [データ接続] を右クリックし、[接続の追加] をクリックします。

  3. [データ ソースの選択] ダイアログ ボックスで、[Microsoft SQL Server] をクリックして [OK] をクリックします。

    [接続の追加] ダイアログ ボックスが開き、[データ ソース][Microsoft SQL Server (SqlClient)] でない場合は、[変更] をクリックし、[データ ソースの選択] または [データ ソースの変更] ダイアログ ボックスを開いて、[Microsoft SQL Server] をクリックし、[OK] をクリックします。 詳細については、「[データ ソースの選択]/[データ ソースの変更] ダイアログ ボックス」を参照してください。

  4. ドロップダウン リストで [サーバー名] をクリックするか、Northwind データベースがあるサーバー名を入力します。

  5. データベースまたはアプリケーションの要件に基づいて、[Windows 認証を使用する] をクリックするか、または特定のユーザー名とパスワードを使用して、SQL Server を実行しているコンピューターにログオンします (SQL Server 認証)。 詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。

  6. [データベース名の選択または入力] リストで Northwind データベースをクリックします。

  7. [OK] をクリックします。

    データ接続がサーバー エクスプローラーまたはデータベース エクスプローラーに追加されます。

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

サーバー エクスプローラーまたはデータベース エクスプローラーに用意されている Visual Database Tools を使用してストアド プロシージャを作成します。

SQL スクリプトを使用してストアド プロシージャを作成するには

  1. サーバー エクスプローラーまたはデータベース エクスプローラーで、Northwind データベースを展開します。

  2. 次のタスクを実行して、SelectCustomers ストアド プロシージャを定義します。

    1. [ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。

    2. 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
      
    3. プロシージャを保存します。

    4. Northwind データベースに SelectCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。

  3. 次のタスクを実行して、InsertCustomers ストアド プロシージャを定義します。

    1. [ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。

    2. 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)
      
    3. プロシージャを保存します。

    4. Northwind データベースに InsertCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。

  4. 次のタスクを実行して、UpdateCustomers ストアド プロシージャを定義します。

    1. [ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。

    2. 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)
      
    3. プロシージャを保存します。

    4. Northwind データベースに UpdateCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。

  5. 次のタスクを実行して、DeleteCustomers ストアド プロシージャを定義します。

    1. [ストアド プロシージャ] ノードを右クリックし、[新しいストアド プロシージャの追加] をクリックします。

    2. CREATE PROCEDURE テンプレートを次のコードで置き換えます。

      CREATE PROCEDURE dbo.DeleteCustomers
      (
          @Original_CustomerID nchar(5)
      )
      AS
          SET NOCOUNT OFF;
      DELETE FROM [dbo].[Customers] WHERE (([CustomerID] = @Original_CustomerID))
      
    3. プロシージャを保存します。

    4. Northwind データベースに DeleteCustomers ストアド プロシージャが追加されます。 プロシージャを保存すると、プロシージャ定義が CREATE PROCEDURE から ALTER PROCEDURE に変更されていることがわかります。

次の手順

次のチュートリアルでは、作成したストアド プロシージャを使用する方法について説明します。

方法 : 更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)

チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)

チュートリアル : エンティティ クラスの挿入、更新、および削除の動作のカスタマイズ

注意

このチュートリアルを繰り返す場合は、まず、定義したストアド プロシージャを削除する必要があります。 削除していない場合、"データベースに 'ProcedureName' という名前のオブジェクトが既に存在します。" というエラー メッセージが表示されます。

参照

その他の技術情報

オブジェクト リレーショナル デザイナー (O/R デザイナー)

LINQ to SQL

Visual Studio でのデータへのアクセス

履歴の変更

日付

履歴

理由

2011 年 4 月

ストアド プロシージャを作成する手順の誤りを修正。

カスタマー フィードバック