在单个数据库中完成对话

适用范围:SQL ServerAzure SQL 托管实例

本教程面向不熟悉 Service Broker,但熟悉数据库概念和 Transact-SQL 语句的用户。 它通过向他们展示如何在单一数据库中生成和运行简单对话来帮助新用户入门。

学习内容

本教程介绍如何创建支持简单的请求-答复 Service Broker 对话所需的数据库对象。 然后,启动对话并使用它来传输消息。

每个 Service Broker 对话都有两个端点:对话发起方和目标。 执行以下任务:

  • 为目标创建一个服务和队列,并为发起方创建一个服务和队列。

  • 创建请求消息类型和答复消息类型。

  • 创建约定,指定请求消息从发起方传递到目标并且答复消息从目标传递到发起方。

执行简单的对话:

  • 启动对话.

  • 从发起方向目标发送一个请求。

  • 在目标处接收请求并将答复发送到发起方。

  • 在发起方处接收答复。

  • 结束会话。

对于在数据库引擎的同一实例中两端的对话,不会跨网络传输消息。 数据库引擎安全性和权限将限制对授权主体的访问。 此方案不需要网络加密。

本教程分为三课:

Description
第 1 课:创建对话对象 在本课中,将创建支持基本 Service Broker 对话所需的消息类型、约定、服务和队列。
第 2 课:开始对话并传输消息 在本课中,将通过启动对话并将请求消息从发起方传输到目标来完成一个基本对话。 然后,将回复消息传输回发起方并结束对话。
第 3 课:删除对话对象](lesson-3-dropping-the-conversation-objects.md) 在本课中,将删除为支持会话而创建的对象。

要求

若要完成此教程,应熟悉 Transact-SQL 语言以及如何在 SQL Server Management Studio 中使用数据库引擎查询编辑器。 必须是 AdventureWorks2008R2 示例数据库的 db_ddladmin 或 db_owner 固定服务器角色或 sysadmin 固定服务器角色的成员

注意事项

本文中的代码示例是使用 AdventureWorks2025 示例数据库进行测试的,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。

您的系统必须安装以下软件:

  • 任何版本的 SQL Server。

  • SQL Server Management Studio 或 Management Studio Express。

  • 支持的 Internet 浏览器。

  • AdventureWorks2008R2 示例数据库。 有关如何安装示例数据库的详细信息,请参阅 Adventure Works 示例数据库