-- =============================================
--启用 Broker USE master;
GO ALTER DATABASE DEV_AMS
SET ENABLE_BROKER;
GO --或者
ALTER DATABASE 目标数据库
SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE DEV_AMS
SET ENABLE_BROKER;
GO
-- =============================================
--1.消息类型:创建消息类型
CREATE MESSAGE TYPE CreateUserMessage
VALIDATION = None
GO --2.约定:创建约定
CREATE CONTRACT CreateUserContract
(CreateUserMessage SENT BY ANY);--多个消息逗号隔开
GO --3.队列:创建队列
--发送队列、接收队列
CREATE QUEUE CreateUserSendQueue
WITH STATUS=ON
GO
CREATE QUEUE CreateUserReceiveQueue
WITH STATUS=ON
GO --4.服务:创建服务
--发送服务,接收服务
CREATE SERVICE CreateUserSendService
ON QUEUE CreateUserSendQueue
(CreateUserContract);
GO CREATE SERVICE CreateUserReceiveService
ON QUEUE CreateUserReceiveQueue
(CreateUserContract);
GO -- =============================================
--1.测试发送
--Dialog会话用于服务间信息交换
DECLARE @Init_Handler uniqueidentifier
DECLARE @UserMsg nvarchar(100)
SET @UserMsg='张三入职' --BEGIN TRANSACTION; BEGIN DIALOG CONVERSATION @Init_Handler
FROM SERVICE CreateUserSendService
TO SERVICE 'CreateUserReceiveService'
ON CONTRACT CreateUserContract
WITH
ENCRYPTION=OFF;--分号结束
--发送
SEND ON CONVERSATION @Init_Handler
MESSAGE TYPE [CreateUserMessage]
(@UserMsg); --COMMIT TRANSACTION;
GO --2.测试接收 DECLARE @RecvReqDlgHandle uniqueidentifier
DECLARE @RecvReqMsg nvarchar(100)
DECLARE @RecvReqMsgName sysname BEGIN TRANSACTION WAITFOR
(
RECEIVE TOP(1)
@RecvReqDlgHandle = conversation_handle,
@RecvReqMsg = message_body,
@RecvReqMsgName = message_type_name
FROM CreateUserReceiveQueue
), TIMEOUT 1000; IF @RecvReqMsgName = N'CreateUserMessage'
BEGIN
-- 定义准备用于返回的消息.
DECLARE @ReplyMsg NVARCHAR(100);
-- 简单设置.
SELECT @ReplyMsg = '~' + @RecvReqMsg + '~';
-- 调试输出.
PRINT '我接收到:' + @RecvReqMsg + '; 我将反馈:' + @ReplyMsg;
-- 发送反馈消息.
SEND ON CONVERSATION @RecvReqDlgHandle
MESSAGE TYPE [CreateUserMessage] (@ReplyMsg);
END CONVERSATION @RecvReqDlgHandle;
END; COMMIT TRANSACTION;
GO --
select * from [dbo].[CreateUserSendQueue]
select * from [dbo].[CreateUserReceiveQueue]

资源:

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/bb839495%28v%3dsql.100%29

SQL:SQL Broker的更多相关文章

  1. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  2. [SQL]SQL类似统计功能的sql文

    declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...

  3. pl/sql sql窗口允许输出和允许变量替换

    pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...

  4. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  5. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  6. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  7. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  9. SQL SQL语句的增删改查

    一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...

随机推荐

  1. Windows 下配置 ApacheBench (AB) 压力测试

    下载 http://httpd.apache.org/download.cgi 我用的是ApacheHaus. 安装服务 1. 打开apache目录下的 conf/httpd.conf,搜索并修改 L ...

  2. Spring bean加载之1:BeanFactory和FactoryBean

    BeanFactory BeanFactory:以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂.在Spring中,BeanFactory是IOC容器的核心接口,它的职责包 ...

  3. UVALive-8201-BBP Formula

    8201-BBP Formula Time limit: 3.000 seconds In 1995, Simon Plouffe discovered a special summation sty ...

  4. 用jquery和php实现ajax异步请求响应

    ajax技术可以实现异步请求和响应,下面的是用jquery向一个php脚本发送异步请求,并得到响应. 第一步,准备好前台的html表单,和jquery实现的ajax请求 <html lang=& ...

  5. PAT(B) 1048 数字加密(Java)字符串

    题目链接:1048 数字加密 (20 point(s)) 题目描述 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运 ...

  6. nginx与PHP编译configure

    configure参数nginx和php是编译安装的关键.记录下来备用: php: ./configure --prefix=/usr/local/php --with-config-file-pat ...

  7. 解决阿里云OSS The requested bucket name is not available的办法

    今天在创建Bucket的时候遇到了这个问题 The requested bucket name is not available. The bucket namespace is shared by ...

  8. centos6克隆虚拟机后,网络无法访问和启动

    使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...

  9. robot framework 的关键字Continue For Loop 用法

    Continue For Loop关键字就是python的continue的意思,跳出本层循环,继续执行下一个循环. 我先举个栗子: :FOR    ${index}    IN RANGE    5 ...

  10. Vue.js 教程 -- 实例讲解

    一. Vue.js是什么 Vue.js是一套构建用户界面(view)的MVVM框架.Vue.js的核心库只关注视图层,并且非常容易学习,非常容易与其他库或已有的项目整合. 1.1 Vue.js的目的 ...