Включить брокер SQL Server, который занимает слишком много времени

У меня есть Microsoft SQL Server 2005, и я попытался включить Broker для моей базы данных с этими T-SQL:

 SELECT name, is_broker_enabled FROM sys.databases 
 -- checking its status 0 in my case
 ALTER DATABASE myDatabase SET ENABLE_BROKER

Alter Database требуется много времени для обработки. Сейчас уже полчаса, и он все еще работает. Не уверен, ожидает ли он чего-то еще, или я должен сначала что-то очистить, например удалить все сообщения, контракт, очередь и службы под сервис-брокером?

Ответ 2

С помощью кода ниже вы можете сразу включить очередь брокерских услуг

ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;

Ответ 3

USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO

Ответ 4

На самом деле я предпочитаю использовать NEW_BROKER, он работает нормально во всех случаях:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

Ответ 5

Включение SQL Server Service Broker требует блокировки базы данных. Остановите агент SQL Server и выполните следующее:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Измените [MyDatabase] имя вашей базы данных, а затем запустите агент SQL Server.

Если вы хотите увидеть все базы данных, в которых включен или отключен Service Broker, выполните запрос sys.databases, например:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases