SQL:SQL Broker
- -- =============================================
- --启用 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的更多相关文章
- BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息
SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...
- [SQL]SQL类似统计功能的sql文
declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...
- pl/sql sql窗口允许输出和允许变量替换
pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- SQL SQL语句的增删改查
一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...
随机推荐
- lnmp+tp5安装纪要
1: lnmp : https://lnmp.org/install.html 官网安装帮助 运行命令:wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz ...
- Ubuntu 更换下载源
Ubuntu将下载官方源更换为国内源 由于某些原因,在国内更新软件都很慢,可以改源为国内源 1.备份原始文件 sudo cp /etc/apt/sources.list /etc/apt/source ...
- (十七)springMvc 对表单提交的日期以及JSON中的日期的参数绑定
文章目录 前言 `Ajax`提交表单数据 `Ajax`提交`JSON` 格式数据 解决输出JSON乱码的问题 控制JSON输出日期格式 小记 前言 springMVC 提供强大的参数绑定功能,使得我们 ...
- Python22之lambda表达式
一.Lambda表达式的概念和意义 lambda表达式有称为隐函数,它的定义过程由形参和要返回的表达式组成,它相对于一般函数而言具有以下优势: 1.免去了函数定义的过程,代码变得更加精简 2.省却函数 ...
- python 之 数据库(内置函数、流程控制、索引)
10.17 内置函数 强调:mysql内置的函数只能在sql语句中使用 #数学函数 round(x,y) #返回参数x的四舍五入的有y位小数的值 rand() #返回0到1内的随机值,可以通过提供一个 ...
- C/C++中内存泄漏、内存溢出与野指针的解释与说明
1.内存泄漏 内存泄漏是指我们在堆中申请(new/malloc)了一块内存,但是没有去手动的释放(delete/free)内存,导致指针已经消失,而指针指向的东西还在,已经不能控制这块内存, 所以就是 ...
- go语言实现单链表
线性表包含两种存储方法:顺序存储结构和链式存储结构,其中顺序表的缺点是不便插入与删除数据. 单链表:每个结点包含两部分:数据域+指针域,上一个结点的指针指向下一结点,依次相连,形成链表.特别注意的是每 ...
- 【LEETCODE】33、LeetCode的Given a non-negative integer numRows, generate the first numRows of Pascal's triangle
package y2019.Algorithm.array; import java.util.ArrayList; import java.util.List; /** * @ProjectName ...
- List集合转换为数组类型方法
list集合转换为数组可以使用list集合的toArray(T[] a)方法, topicDetailsVo.setUrl(urls.toArray(new String[]{})); url是个数组 ...
- SQL高级教程
一.top子句 top子句用于规定要返回的记录的数目 并非所有数据库系统都支持top子句 # sqlserver SELECT TOP number|percent column_name(s) FR ...