SQL Server 通过SQL脚本启动Broker并设置兼容性
SQL Server数据库中通过SQL启用Broker 并建立相关队列和服务
兼容代码使其可以在2000库中执行不报错
针对的是2008版本, 如果是其他版本可以改相关版本号和兼容性标记
/****************************************************************************
启动Broker并设置兼容性
刘志林
2017-11-14
http://www.cnblogs.com/lzl_17948876/
lzl_17948876@hotmail.com
****************************************************************************/
DECLARE @_DBVersion VARCHAR(10);
SELECT @_DBVersion = CAST(SERVERPROPERTY('productversion') AS VARCHAR);
DECLARE @x INT;
SET @x = CHARINDEX('.', @_DBVersion, 0);
IF CAST(LEFT(@_DBVersion, @x - 1) AS INT) >= 10 --判断是否2008或者更高版本
BEGIN
DECLARE @DBName VARCHAR(50);
DECLARE @SQL VARCHAR(1024);
SELECT @DBName = DB_NAME();
--启用Broker
IF DATABASEpRoPERTYEX(@DBName, 'IsBrokerEnabled') <> 1
BEGIN
SET @SQL = 'USE [master];'
+ 'ALTER DATABASE [' + @DBName + '] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;'
+ 'ALTER DATABASE [' + @DBName + '] SET ENABLE_BROKER;'
+ 'USE [' + @DBName +'];';
EXEC(@SQL);
END;
--设置兼容性, 如果不设置, 兼容性为2000(80)时无法使用Broker功能
SET @SQL = 'USE [master];'
+ 'ALTER DATABASE [' + @DBName + '] SET COMPATIBILITY_LEVEL = 100;' --修改兼容性为2008
+ 'USE [' + @DBName +'];';
EXEC(@SQL); --建立队列及服务
IF OBJECT_ID('Test_Queue') IS NULL
BEGIN
EXEC('CREATE QUEUE Test_Queue');
END;
IF (SELECT COUNT(*) FROM sys.services WHERE NAME = 'Test_Service') = 0
BEGIN
EXEC('CREATE SERVICE Test_Service ON QUEUE Test_Queue ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification])');
END;
IF (SELECT COUNT(*) FROM sys.database_principals WHERE name = 'sql_dependency_subscriber' AND type = 'R') <> 0
BEGIN
EXEC('GRANT SEND ON SERVICE::[Test_Service] TO sql_dependency_subscriber');
END;
END;
SQL Server 通过SQL脚本启动Broker并设置兼容性的更多相关文章
- 更改Windows系统的密码之后,SQL Server 2008服务无法启动
问题:更改Windows操作系统的密码之后,SQL Server 2008服务无法启动. 原因:SQL Server服务需要使用操作系统的某个登录账户. 解决:需要在服务的属性窗口中修改账户密码,然后 ...
- SQL Server AG集群启动不起来的临时自救大招
SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...
- SQL Server 2012 R2升级到SQL Server 2016无法正常启动数据库服务解决方案
原定周末把公司的TFS升级到2018,由于TFS 2018需要SQL Server至少是2016以上版本,所以还需要将原来的SQL Server 2012 R2一并升级.今天早上负责的同事告诉我升级失 ...
- sql server编写通用脚本自动统计各表数据量心得
工作过程中,如果一个数据库的表比较多,手工编写统计脚本就会比较繁琐,于是摸索出自动生成各表统计数据量脚本的通用方法,直接上代码: /* 脚本来源:https://www.cnblogs.com/zha ...
- 最小配置启动SQL SERVER,更改SQL Server最大内存大小导致不能启动的解决方法
如果存在配置问题而无法启动服务器,则可以使用最小配置启动选项来启动 Microsoft SQL Server 实例. 这就是启动选项 -f. 使用最小配置启动 SQL Server 实例会自动将服务器 ...
- SQL Server经典sql语句大全(转)
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs
原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...
- 【SQL Server】SQL触发器经验详解
[SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读 加入杂志 步骤 1 2 3 4 5 6 7 8 ...
- PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法
逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...
随机推荐
- day01:study HTTP协议
总结: 1.对web客户端和web服务器之间的通讯有了基本原理有了简单理解. 2.对http协议有了相关概念的建立 3.B/S C/S 两种形式 4.搭建tomcat服务器的环境,相关配置(虚拟目录 ...
- Linux 独立安装subversion-1.8.18
一.所需软件包 1.apr-1.4.6.tar.gz 下载地址:http://apr.apache.org/ 2.apr-util-1.4.1.tar.gz 下载地址:http://apr.apa ...
- Java面向对象 IO (二)
Java面向对象 IO (二) 知识概要: (1)字节流概述 (2)字节流复制图片 (3)IO流(读取键盘录入) (4)读取转换流,写入转换流 字节流概述 ...
- [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet
#region 接口返回的Xml转换成DataSet /// <summary> /// 返回的Xml转换成DataSet /// </summary> /// <par ...
- KMP算法的细节问题
preface: 想必,很多人都知道D.E.Knuth与V.R.Pratt和J.H.Morris同时提出所谓的狂拽酷炫屌炸天的KMP算法,在对字符串的匹配(或是字符串的查找)方面表现出比较好的效率,该 ...
- 完美实现身份证校验 js正则
注意: 1.只针对18为身份证号码进行校验,现在15位的应该很少了, 2.不区分xX大小写, 3.出生年份1900-2099,每月的天数也进行相关验证(考虑的闰月的情况), 4.校验规则详见,这个写的 ...
- spring容器启动原理分析1
在项目的web.xml中配置 <listener> <listener-class>org.springframework.web.context.ContextLoaderL ...
- 通过xrdp服务实现windows远程桌面连接树莓派
如题:通过xrdp服务实现windows远程桌面连接树莓派 受同学影响,最近接触到了树莓派,又加上自己技痒想试一下这个小东西究竟能做什么,所以开始了树莓派学习之旅. 正题开始-xrdp实现window ...
- (@WhiteTaken)设计模式学习——组合模式
下面来学习一下组合模式. 组合模式概念是什么呢.从别的地方抄来了一些理论. 理论:将对象组合成树形结构以表示"部分-整体"的层次结构.Composite模式使得用户对单个对象和组合 ...
- C++点滴20130802
1.sprintf与printf,fprintf为三兄弟.其中printf输出到屏幕,fprintf输出到文件,而sprintf输出到字符串中.通常情况下,屏幕是可以输出的,文件也可以写的(除非磁盘满 ...