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

更新 : 2007 年 11 月

Visual Studio ドキュメントのヘルプ トピックによっては、Customers テーブルのデータに対して更新 (挿入、更新、および削除) を実行するのに、Northwind サンプル データベースに追加のストアド プロシージャが必要なものがあります。

このチュートリアルでは、SQL Server 用 Northwind サンプル データベースに追加ストアド プロシージャを作成する手順について説明します。

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

このチュートリアルでは、次のタスクを実行する方法を学習します。

  • Northwind サンプル データベースへのデータ接続を作成します。

  • ストアド プロシージャを作成します。

前提条件

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

Northwind データベースへの接続

このチュートリアルでは、SQL Server バージョンの Northwind データベースとの接続が必要です。次に、このデータ接続の作成手順を示します。

Bb384469.alert_note(ja-jp,VS.90).gifメモ :

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を使用して、Northwind データベースに対して用意されている SQL スクリプトを実行することにより、ストアド プロシージャを作成します。

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

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

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

  3. コード エディタで次のコードを貼り付けて、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
    
  4. コード エディタですべてのテキストを選択し、それを右クリックして、[選択範囲の実行] をクリックします。

    Northwind データベースに SelectCustomers、InsertCustomers、UpdateCustomers、および DeleteCustomers の各ストアド プロシージャが作成されます。

次の手順

これでストアド プロシージャが作成されました。これらのストアド プロシージャを実際に使用する方法については、次のチュートリアルを参照してください。

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

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

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

参照

その他の技術情報

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

LINQ to SQL

データへのアクセス (Visual Studio)