我有一个Microsoft SQL Server 2005,我尝试使用这些T-SQL为我的数据库启用Broker:
SELECT name, is_broker_enabled FROM sys.databases
-- checking its status 0 in my case
ALTER DATABASE myDatabase SET ENABLE_BROKER
Alter Database
需要很长时间才能处理。现在已超过半小时,它仍在运行。不确定它是否在等待其他东西或者我必须先清理任何内容,例如删除服务代理下的所有消息,合同,队列和服务?
答案 0 :(得分:240)
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;
答案 1 :(得分:19)
使用以下代码,您可以立即启用服务代理队列
ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
答案 2 :(得分:10)
USE master;
GO
ALTER DATABASE Database_Name
SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
答案 3 :(得分:2)
启用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
答案 4 :(得分:1)
实际上我更喜欢使用NEW_BROKER
,它在所有情况下都能正常工作:
ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
答案 5 :(得分:0)
就我而言,我在Web项目中使用的是sql数据库,就像在调试模式下一样。因此,当我关闭所有连接时,它执行得很好。