共用方式為


逐步解說:建立 Northwind Customers 資料表的更新預存程序

更新:2007 年 11 月

Visual Studio 文件中有些說明主題需要 Northwind 範例資料庫中的其他預存程序,才能執行 Customers 資料表中的資料更新 (插入、更新和刪除)。

本逐步解說提供指示,說明如何在 SQL Server 版 Northwind 範例資料庫中建立其他的預存程序。

本主題稍後的「後續步驟」一節提供連結,可連至示範如何使用這些其他預存程序的主題。

在此逐步解說中,您將學習如何執行下列工作:

  • 建立 Northwind 範例資料庫的資料連接。

  • 建立預存程序。

必要條件

若要完成這個逐步解說,您將需要:

連接到 Northwind 資料庫

這個逐步解說需要連接至 SQL Server 版的 Northwind 資料庫。下列程序提供建立資料連接的指示。

注意事項:

如果您已經有 Northwind 資料庫的資料連接,可以直接前往下一節「建立預存程序」。

建立與 Northwind SQL Server 資料庫的資料連接

  1. 按一下 [檢視] 功能表上的 [伺服器總管/資料庫總管]。

  2. 以滑鼠右鍵按一下 [資料連接],然後按一下 [加入連接]。

  3. 在 [選擇資料來源] 對話方塊中按一下 [Microsoft SQL Server],再按一下 [確定]。

    如果 [加入連接] 對話方塊開啟,而 [資料來源] 不是 [Microsoft SQL Server (SqlClient)],請按一下 [變更] 以開啟 [選擇/變更資料來源] 對話方塊,然後按一下 [Microsoft SQL Server],再按一下 [確定]。如需詳細資訊,請參閱選擇/變更資料來源對話方塊

  4. 按一下下拉式清單中的 [伺服器名稱],或輸入 Northwind 資料庫所在的伺服器名稱。

  5. 請根據資料庫或應用程式的需求,按一下 [使用 Windows 驗證] 或使用特定的使用者名稱及密碼,登入執行 SQL Server ([SQL Server 驗證]) 的電腦。如需詳細資訊,請參閱新增/修改連接 (Microsoft SQL Server)

  6. 在 [選取或輸入資料庫名稱] 清單中,按一下 Northwind 資料庫。

  7. 按一下 [確定]。

    資料連接會加入至 [伺服器總管] 或 [資料庫總管]。

建立預存程序

要建立預存程序,請使用 [伺服器總管] 或 [資料庫總管] 中的 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 預存程序。

後續步驟

您已經建立了預存程序,請嘗試下列示範如何使用預存程序的逐步解說:

HOW TO:指派預存程序來執行更新、插入和刪除 (O/R 設計工具)

逐步解說:建立 LINQ to SQL 類別 (O/R 設計工具)

逐步解說:自訂實體類別的插入、更新和刪除行為

請參閱

其他資源

物件關聯式設計工具 (O/R 設計工具)

LINQ to SQL

存取資料 (Visual Studio)