启用S​​QL Server代理需要很长时间

我有一个Microsoft SQL服务器2005年,我试图使用这些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; 

启用S​​QL Server Service Broker需要数据库locking。 停止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