我正在使用SMO对象来访问我的数据库。我在SQL Server上启用了服务代理。我想知道是否有人知道如何通过代码启用/禁用队列(VB / C#)。我试过ServiceQueue.IsEnqueueEnabled
,但这只会设置属性。
答案 0 :(得分:1)
控制STATUS = {ON | OFF}
的属性确实是.IsEnqueueEnabled
。但是,只有在调用.Alter()
方法之前,所有SMO修改都在内存中:
Alter方法更新自ServiceQueue对象创建以来或自上一个Alter语句以来对ServiceQueue对象属性所做的任何更改。
这是与SMO对象交互的一般方式,只有在明确应用之前,更改才会在内存中。
如果你好奇为什么要调用该属性IsEnqueueEnabled
,简短的回答是名称(正确)反映了sys.service_queues.is_enqueue_enabled
的列名。长期以来,该列是如此命名的,因为曾几何时,队列具有为入队和出队而单独禁用的能力。分离并没有引起2005 RTM的关注,但痕迹留在了目录视图中。