完成数据库之间的对话

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

本教程面向不熟悉 Service Broker,但熟悉数据库概念和 Transact-SQL 语句的用户。 本教程通过说明如何在同一数据库引擎实例的两个数据库之间生成并运行一个基本会话,帮助新用户入门。

学习内容

本教程基于在教程中学习的任务, 完成单个数据库中的对话。 本教程介绍如何配置会话,使其在数据库引擎的同一实例上的两个数据库之间运行。

第 2 课中要遵循的步骤与第 1 课中的步骤相同,但以下情况例外:

  • 创建两个数据库: InitiatorDBTargetDB。 需要在目标服务和队列中创建InitiatorDBTargetDB所有发起程序服务和队列。

  • 创建消息类型和协定的两个副本,一个副本,InitiatorDB另一个在 。TargetDB 会话的双方必须有权访问相同的消息类型和约定定义。

  • TRUSTWORTHY数据库属性设置为 ON .InitiatorDB 这是在同一数据库引擎实例的两个数据库之间启用会话的最简单机制。

  • 了解必须在每个数据库中运行哪些语句才能完成会话,以及这些语句的运行顺序。

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

本教程分为四课:

Description
第 1 课:创建数据库 在本课中,你将创建数据库并在发起程序数据库中启用 TRUSTWORTHY 该选项。
第 2 课:创建目标对话对象 在本课中,您将在目标数据库中创建消息类型、约定、服务和队列。
第 3 课:创建发起方对话对象 在本课中,您将在发起方数据库中创建消息类型、约定、服务和队列。
第 4 课:开始对话并传输消息 在本课中,将通过启动会话并将请求消息从发起方传输到目标来完成一个基本会话。 然后,将答复消息传送回发起方并结束会话。

要求

若要完成此教程,应熟悉 Transact-SQL 语言以及如何在 SQL Server Management Studio 中使用数据库引擎查询编辑器。 必须具有CREATE DATABASECREATE ANY DATABASEALTER ANY DATABASE有权运行本教程。

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

  • 任何版本的 SQL Server

  • SQL Server Management Studio 或 Management Studio Express

  • 支持的 Internet 浏览器