澳门金沙vip 4

【澳门金沙vip】The SQL Server Service Broker for the current database is not enabled

把一个数据恢复至另一个服务器上,出现了一个异常:

数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的
SQL Server Service
Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service
Broker
”。

The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported.  Please enable the Service Broker for this database if you wish to use notifications.

截图如下:
澳门金沙vip 1

 

解决方法:
澳门金沙vip 2

参考上面的步骤,可以设置为True。
但是,你也许没有那么顺利,当你点击”OK”铵钮时,会现另外一个异常:
澳门金沙vip 3

 

那怎样解决呢?没有关系,可以在SQL查询分析器中执行SQL语句:
澳门金沙vip 4

 

澳门金沙vip 5澳门金沙vip 6

DECLARE @DBName SYSNAME

SET @DBName = 'Tutorial'  --'Your DB Name'

DECLARE @spid INT
SELECT @spid = MIN(spid) FROM [MASTER].[dbo].[sysprocesses] WHERE dbid = DB_ID(@DBName)
WHILE @spid IS NOT NULL
BEGIN
    EXECUTE ('KILL ' + @spid)
    SELECT @spid = MIN(spid)  FROM [MASTER].[dbo].[sysprocesses] WHERE dbid = DB_ID(@DBName) AND spid > @spid
END

EXECUTE('ALTER DATABASE '+ @DBName +' SET ENABLE_BROKER')   --DISABLE_BROKER

Source Code

 

解决方案:
在使用的数据库下,依次执行如下语句:
第一步:
SELECT is_broker_enabled FROM sys.databases WHERE name = ‘数据库名称’

执行发现:查看is_broker-enabled为0,依然未启用Service broker

第二步:
ALTER DATABASE 数据库名称 SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE 数据库名称 SET ENABLE_BROKER;