SQL Server数据库中通过SQL启用Broker 并建立相关队列和服务

兼容代码使其可以在2000库中执行不报错

针对的是2008版本, 如果是其他版本可以改相关版本号和兼容性标记

  1. /****************************************************************************
  2. 启动Broker并设置兼容性
  3. 刘志林
  4. 2017-11-14
  5. http://www.cnblogs.com/lzl_17948876/
  6. lzl_17948876@hotmail.com
  7. ****************************************************************************/
  8. DECLARE @_DBVersion VARCHAR(10);
  9. SELECT @_DBVersion = CAST(SERVERPROPERTY('productversion') AS VARCHAR);
  10. DECLARE @x INT;
  11. SET @x = CHARINDEX('.', @_DBVersion, 0);
  12. IF CAST(LEFT(@_DBVersion, @x - 1) AS INT) >= 10 --判断是否2008或者更高版本
  13. BEGIN
  14. DECLARE @DBName VARCHAR(50);
  15. DECLARE @SQL VARCHAR(1024);
  16. SELECT @DBName = DB_NAME();
  17. --启用Broker
  18. IF DATABASEpRoPERTYEX(@DBName, 'IsBrokerEnabled') <> 1
  19. BEGIN
  20. SET @SQL = 'USE [master];'
  21. + 'ALTER DATABASE [' + @DBName + '] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;'
  22. + 'ALTER DATABASE [' + @DBName + '] SET ENABLE_BROKER;'
  23. + 'USE [' + @DBName +'];';
  24. EXEC(@SQL);
  25. END;
  26. --设置兼容性, 如果不设置, 兼容性为2000(80)时无法使用Broker功能
  27. SET @SQL = 'USE [master];'
  28. + 'ALTER DATABASE [' + @DBName + '] SET COMPATIBILITY_LEVEL = 100;' --修改兼容性为2008
  29. + 'USE [' + @DBName +'];';
  30. EXEC(@SQL);
  31.  
  32. --建立队列及服务
  33. IF OBJECT_ID('Test_Queue') IS NULL
  34. BEGIN
  35. EXEC('CREATE QUEUE Test_Queue');
  36. END;
  37. IF (SELECT COUNT(*) FROM sys.services WHERE NAME = 'Test_Service') = 0
  38. BEGIN
  39. EXEC('CREATE SERVICE Test_Service ON QUEUE Test_Queue ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification])');
  40. END;
  41. IF (SELECT COUNT(*) FROM sys.database_principals WHERE name = 'sql_dependency_subscriber' AND type = 'R') <> 0
  42. BEGIN
  43. EXEC('GRANT SEND ON SERVICE::[Test_Service] TO sql_dependency_subscriber');
  44. END;
  45. END;

SQL Server 通过SQL脚本启动Broker并设置兼容性的更多相关文章

  1. 更改Windows系统的密码之后,SQL Server 2008服务无法启动

    问题:更改Windows操作系统的密码之后,SQL Server 2008服务无法启动. 原因:SQL Server服务需要使用操作系统的某个登录账户. 解决:需要在服务的属性窗口中修改账户密码,然后 ...

  2. SQL Server AG集群启动不起来的临时自救大招

    SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...

  3. SQL Server 2012 R2升级到SQL Server 2016无法正常启动数据库服务解决方案

    原定周末把公司的TFS升级到2018,由于TFS 2018需要SQL Server至少是2016以上版本,所以还需要将原来的SQL Server 2012 R2一并升级.今天早上负责的同事告诉我升级失 ...

  4. sql server编写通用脚本自动统计各表数据量心得

    工作过程中,如果一个数据库的表比较多,手工编写统计脚本就会比较繁琐,于是摸索出自动生成各表统计数据量脚本的通用方法,直接上代码: /* 脚本来源:https://www.cnblogs.com/zha ...

  5. 最小配置启动SQL SERVER,更改SQL Server最大内存大小导致不能启动的解决方法

    如果存在配置问题而无法启动服务器,则可以使用最小配置启动选项来启动 Microsoft SQL Server 实例. 这就是启动选项 -f. 使用最小配置启动 SQL Server 实例会自动将服务器 ...

  6. SQL Server经典sql语句大全(转)

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  7. 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs

    原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...

  8. 【SQL Server】SQL触发器经验详解

    [SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读   加入杂志 步骤 1 2 3 4 5 6 7 8   ...

  9. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

    逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...

随机推荐

  1. windows下怎么解决Python双版本问题

    相信大家会在windows下会遇到Python双版本问题 当我们装了Python2和Python3时我们好只能在命令栏调出最高版本的那个低版本的难道消失了吗?今天我们就解决这个问题! 1.下载 我们在 ...

  2. springMVC中的redirect和forward区别?

    1.forward在跳转后可以取到message值,redirect在跳转后无法取到message值. 2.forward跳转后地址栏URL不会改变,而redirect会改变.

  3. Java高级工程师进阶路线

    第一部分:宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) 工程师,您要对JAVA做比较 ...

  4. git-分支使用方式

    需求场景:假如你看着教程完成了一个项目,但是感觉第一次代码掌握不牢,想要进行第二次代码练习--如果某某心里想我还有初始备份文件,我此时的心里独白是你的硬盘还够用吗o(╯□╰)o 1 创建一个新分支 - ...

  5. zoj3710 friends(floyd变形)

    Friends Time Limit: 2 Seconds      Memory Limit: 65536 KB Alice lives in the country where people li ...

  6. 云计算---openstack各服务端口使用情况

    端口占用情况 端口情况可以使用ss -tanp命令进行查看 监听的所有端口ss -tanp | grep LISTEN 基础服务 22 --SSH 3306 --MariaDB(MySQL) 2701 ...

  7. win10 uwp 自定义控件初始化

    我遇到一个问题,我在 xaml 用了我的自定义控件,但是我给他设置了一个值,但是什么时候我才可以获得这个值? 本文告诉大家,从构造函数.loaded.Initialized 的调用过程. 用最简单的方 ...

  8. sap表维护工具来维护自定义表&视图簇的使用

    一.通过表维护工具维护自定义表 1.SE11创建表 2.se11界面的菜单:实用程序->Table Maintenance Generator其实这里就是调用SE54 3.sm30 调用维护好的 ...

  9. 【面向对象】详解之JavaScript篇

    [重点提前说:面向对象的思想很重要!] 最近开始接触学习后台的PHP语言,在接触到PHP中的面向对象相关思想之后,突然想到之前曾接触的JS中的面向对象思想,无奈记性太差,便去翻了翻资料,花了点时间梳理 ...

  10. Jquery的树插件jqxTreeGrid的使用小结

    一.引入相应的js <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" t ...