zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    动态代理Dynamic Proxy
    ORM SQLOBJECT SIMPLE
    python mysql desc
    How to use AKBusGpsParser
    AT&T ASSEMBLY FOR LINUX AND MAC (SYS_FORK)
    How to install ZeroMQ on Ubuntu14.04
    [LeetCode]208. 实现 Trie (前缀树)
    [LeetCode]438. 找到字符串中所有字母异位词、76. 最小覆盖子串(滑动窗口解决子串问题系列)
    【二叉树-最长路径系列(任意路径)】直径、最长同值路径、 最大路径和(DFS、树形DP)
    [LeetCode]146. LRU缓存机制
  • 原文地址:https://www.cnblogs.com/lzl_17948876/p/7832737.html
Copyright © 2011-2022 走看看