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

在某些 [說明] 主題Visual Studio文件需要額外的預存程序,在北風範例資料庫中執行 [客戶] 資料表中的資料更新 (插入、 更新和刪除)。

本逐步解說會提供說明,在北風範例資料庫中建立這些其他預存程序的SQL Server。

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

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

  • 建立資料連接到北風樣本資料庫。

  • 建立預存程序。

必要條件

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

連接到 Northwind 資料庫

這個逐步解說中需要連接到北風貿易資料庫的 SQL Server 版本。下列程序提供建立資料連線的說明。

注意事項注意事項

如果您已經有資料連接到北風貿易資料庫,您可以前往下一步] 區段中,建立預存程序。

建立與 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. 按一下 [確定]。

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

建立預存程序

對北風資料庫執行提供的 SQL 指令碼,藉由建立預存程序Visual Database Tools伺服器總管/資料庫總管

若要使用 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. 選取程式碼編輯器] 中的所有文字、 以滑鼠右鍵按一下選取的文字,再利用執行選取範圍

    SelectCustomers、 InsertCustomers、 UpdateCustomers,以及預存程序會建立 Northwind 資料庫的 DeleteCustomers。

後續步驟

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

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

請參閱

其他資源

Object Relational Designer (O/R Designer)

LINQ to SQL

存取 Visual Studio 中的資料