演练:为 Northwind Customers 表创建更新存储过程

更新:2007 年 11 月

Visual Studio 文档中的某些帮助主题需要 Northwind 示例数据库中的用于执行 Customers 表中数据更新(插入、更新和删除)的附加存储过程。

本演练提供有关如何在 SQL Server 的 Northwind 示例数据库中创建这些附加存储过程的说明。

本主题后面的“后续步骤”一节提供演示如何使用这些附加存储过程的主题的链接。

在本演练中,您将学习如何执行以下任务:

  • 创建到 Northwind 示例数据库的数据连接。

  • 创建存储过程。

先决条件

若要完成本演练,您需要:

连接到 Northwind 数据库

本演练需要到 Northwind 数据库的 SQL Server 版本的连接。下面的过程提供创建数据连接的说明。

说明:

如果您已经具有到 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 存储过程。

后续步骤

现在您已经创建了存储过程,请尝试下面的演示如何使用这些过程的演练:

如何:指定存储过程以执行更新、插入和删除(O/R 设计器)

演练:创建 LINQ to SQL 类(O/R 设计器)

演练:自定义实体类的插入、更新和删除行为

请参见

其他资源

对象关系设计器(O/R 设计器)

LINQ to SQL

访问数据 (Visual Studio)