如何使用SMO启用/禁用Service Broker队列?

时间:2013-02-05 00:53:43

标签: c# vb.net sql-server-2008 smo service-broker

我正在使用SMO对象来访问我的数据库。我在SQL Server上启用了服务代理。我想知道是否有人知道如何通过代码启用/禁用队列(VB / C#)。我试过ServiceQueue.IsEnqueueEnabled,但这只会设置属性。

1 个答案:

答案 0 :(得分:1)

控制STATUS = {ON | OFF}的属性确实是.IsEnqueueEnabled。但是,只有在调用.Alter()方法之前,所有SMO修改都在内存中:

  

Alter方法更新自ServiceQueue对象创建以来或自上一个Alter语句以来对ServiceQueue对象属性所做的任何更改。

这是与SMO对象交互的一般方式,只有在明确应用之前,更改才会在内存中。

如果你好奇为什么要调用该属性IsEnqueueEnabled,简短的回答是名称(正确)反映了sys.service_queues.is_enqueue_enabled的列名。长期以来,该列是如此命名的,因为曾几何时,队列具有为入队和出队而单独禁用的能力。分离并没有引起2005 RTM的关注,但痕迹留在了目录视图中。