Ответ 1
http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/
alter database [<dbname>] set enable_broker with rollback immediate;
У меня есть 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
требуется много времени для обработки. Сейчас уже полчаса, и он все еще работает. Не уверен, ожидает ли он чего-то еще, или я должен сначала что-то очистить, например удалить все сообщения, контракт, очередь и службы под сервис-брокером?
http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/
alter database [<dbname>] set enable_broker with rollback immediate;
С помощью кода ниже вы можете сразу включить очередь брокерских услуг
ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
USE master;
GO
ALTER DATABASE Database_Name
SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
На самом деле я предпочитаю использовать NEW_BROKER
, он работает нормально во всех случаях:
ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Включение 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