逐步解說:建立 Northwind Customers 資料表的更新預存程序
在某些 [說明] 主題Visual Studio文件需要額外的預存程序,在北風範例資料庫中執行 [客戶] 資料表中的資料更新 (插入、 更新和刪除)。
本逐步解說會提供說明,在北風範例資料庫中建立這些其他預存程序的SQL Server。
本主題稍後的後續步驟 」 一節提供示範如何使用這些其他預存程序的主題連結。
在此逐步解說中,您將學習如何執行下列工作:
建立資料連接到北風樣本資料庫。
建立預存程序。
必要條件
若要完成這個逐步解說,您將需要:
- 存取 SQL Server 版的 Northwind 範例資料庫。如需詳細資訊,請參閱 HOW TO:安裝範例資料庫。
連接到 Northwind 資料庫
這個逐步解說中需要連接到北風貿易資料庫的 SQL Server 版本。下列程序提供建立資料連線的說明。
注意事項 |
---|
如果您已經有資料連接到北風貿易資料庫,您可以前往下一步] 區段中,建立預存程序。 |
建立與 Northwind SQL Server 資料庫的資料連接
按一下 [檢視] 功能表上的 [伺服器總管/資料庫總管]。
以滑鼠右鍵按一下資料連線 再利用 加入連接。
在 [選擇資料來源] 對話方塊中按一下 [Microsoft SQL Server],再按一下 [確定]。
如果 [加入連接] 對話方塊開啟,而 [資料來源] 不是 [Microsoft SQL Server (SqlClient)],請按一下 [變更] 以開啟 [選擇/變更資料來源] 對話方塊,然後按一下 [Microsoft SQL Server],再按一下 [確定]。如需詳細資訊,請參閱選擇/變更資料來源對話方塊。
按一下下拉式清單中的 [伺服器名稱],或輸入 Northwind 資料庫所在的伺服器名稱。
根據資料庫或應用程式的需求而定,按一下 [ 使用 Windows 驗證 ,或使用特定的使用者名稱和密碼來登入電腦執行 SQL Server (SQL Server 驗證)。如需詳細資訊,請參閱 新增/修改連接 (Microsoft SQL Server)。
按一下 [選取或輸入資料庫名稱] 清單中的 Northwind 資料庫。
按一下 [確定]。
資料連接會加入至 [伺服器總管] 或 [資料庫總管]。
建立預存程序
對北風資料庫執行提供的 SQL 指令碼,藉由建立預存程序Visual Database Tools伺服器總管/資料庫總管。
若要使用 SQL 指令碼建立預存程序
在 [伺服器總管] 或 [資料庫總管] 中展開 Northwind 資料庫。
以滑鼠右鍵按一下預存程序 節點,然後按一下 [ 加入新的預存程序。
下列的程式碼貼到程式碼編輯器中,取代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
選取程式碼編輯器] 中的所有文字、 以滑鼠右鍵按一下選取的文字,再利用執行選取範圍。
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