0

在尝试删除 SQL 服务代理对象时,我遇到了这个错误

无法删除队列“SqlDependencyStarter.SqlQueryNotificationService-e1304de0-fb30-4009-b3fb-478c34acc40a”,因为它绑定到一个或多个服务。

但在放弃队列之前,我将放弃绑定到它的所有服务。

SET @sql = 'ALTER QUEUE [SqlDependencyStarter].[' + @service_queue_name + '] WITH STATUS = OFF, RETENTION = OFF, ACTIVATION (STATUS = ON, PROCEDURE_NAME = ' + @activation_procedure + ', MAX_QUEUE_READERS = 1, EXECUTE AS OWNER)';
 EXEC sp_executesql @sql
SET @sql = 'DROP SERVICE [' + @service_name + ']';
 EXEC sp_executesql @sql

然后我试图放弃队列

SET @sql = 'DROP QUEUE [SqlDependencyStarter].[' + @service_queue_name + ']';
EXEC sp_executesql @sql
4

2 回答 2

0

您需要先删除服务,然后再删除队列。

于 2017-09-14T08:36:04.183 回答
0

您还需要删除事件通知:

set @query = N'DROP EVENT NOTIFICATION [' + @eventName + N'] ON SERVER';

exec sp_executesql @query
于 2017-09-14T13:14:57.153 回答