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

更新:2011 年 4 月

本演练演示如何在 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创建存储过程。

使用 SQL 脚本创建存储过程

  1. 在**“服务器资源管理器”/“数据库资源管理器”**中,展开 Northwind 数据库。

  2. 通过执行以下任务来定义 SelectCustomers 存储过程:

    1. 右击**“存储过程”节点,然后单击“添加新存储过程”**。

    2. 使用下面的代码替换 CREATE PROCEDURE 模板:

      CREATE PROCEDURE dbo.[SelectCustomers]
      AS
          SET NOCOUNT ON;
      SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM dbo.Customers
      
    3. 保存该过程。

    4. SelectCustomers 存储过程将添加到 Northwind 数据库。 请注意,保存后,过程定义会从 CREATE PROCEDURE 更改为 ALTER PROCEDURE。

  3. 通过执行以下任务来定义 InsertCustomers 存储过程:

    1. 右击**“存储过程”节点,然后单击“添加新存储过程”**。

    2. 使用下面的代码替换 CREATE PROCEDURE 模板:

      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)
      
    3. 保存该过程。

    4. InsertCustomers 存储过程将添加到 Northwind 数据库。 请注意,保存后,过程定义会从 CREATE PROCEDURE 更改为 ALTER PROCEDURE。

  4. 通过执行以下任务来定义 UpdateCustomers 存储过程:

    1. 右击**“存储过程”节点,然后单击“添加新存储过程”**。

    2. 使用下面的代码替换 CREATE PROCEDURE 模板:

      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)
      
    3. 保存该过程。

    4. UpdateCustomers 存储过程将添加到 Northwind 数据库。 请注意,保存后,过程定义会从 CREATE PROCEDURE 更改为 ALTER PROCEDURE。

  5. 通过执行以下任务来定义 DeleteCustomers 存储过程:

    1. 右击**“存储过程”节点,然后单击“添加新存储过程”**。

    2. 使用下面的代码替换 CREATE PROCEDURE 模板:

      CREATE PROCEDURE dbo.DeleteCustomers
      (
          @Original_CustomerID nchar(5)
      )
      AS
          SET NOCOUNT OFF;
      DELETE FROM [dbo].[Customers] WHERE (([CustomerID] = @Original_CustomerID))
      
    3. 保存该过程。

    4. DeleteCustomers 存储过程将添加到 Northwind 数据库。 请注意,保存后,过程定义会从 CREATE PROCEDURE 更改为 ALTER PROCEDURE。

后续步骤

以下演练演示如何使用刚才创建的存储过程:

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

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

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

提示

如果要重复本演练,必须先删除您定义的存储过程。 否则,您将看到以下错误:数据库中已存在名为“过程名称”的对象。

请参见

其他资源

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

LINQ to SQL

在 Visual Studio 中访问数据

修订记录

日期

修订记录

原因

2011 年 4 月

更正了创建存储过程步骤中的错误。

客户反馈