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;
  • 相关阅读:
    浏览器渲染原理
    前端日常工作性能优化条例
    前端的发展历程
    【YOLO-V1】You Only Look Once: Unified, Real-Time Object Detection
    ModuleNotFoundError: No module named 'keras_retinanet.utils.compute_overlap'
    python学习笔记:线性回归
    软件安装笔记5:navicat for mysql及其简单应用
    python学习笔记39:sklearn
    python学习笔记38:matplotlib
    python学习笔记37:pandas
  • 原文地址:https://www.cnblogs.com/lzl_17948876/p/7832737.html
Copyright © 2011-2022 走看看