DROP EVENT NOTIFICATION (Transact-SQL)

从当前数据库中删除事件通知触发器。

主题链接图标Transact-SQL 语法约定

语法

DROP EVENT NOTIFICATION notification_name [ ,...n ]
ON { SERVER | DATABASE | QUEUE queue_name }
[ ; ]

参数

  • notification_name
    要删除的事件通知名称。可以指定多个事件通知。若要查看当前创建的事件通知列表,请使用 sys.event_notifications (Transact-SQL)

  • SERVER
    指示应用于当前服务器的事件通知的作用域。如果在创建事件通知时指定了 SERVER,则必须指定 SERVER。

  • DATABASE
    指示应用于当前服务器的事件通知的作用域。如果在创建事件通知时指定了 DATABASE,则必须指定 DATABASE。

  • QUEUE queue_name
    指示应用于由 queue_name 指定的队列的事件通知的作用域。如果在创建事件通知时指定了 QUEUE,则必须指定 QUEUE。queue_name 为队列名称,该参数也必须指定。

注释

如果事件通知在事务中激发并在同一事务中删除,则发送事件通知实例,然后删除事件通知。

权限

若要删除作用域为数据库级别的事件通知,用户至少必须是事件通知的所有者,或必须在当前数据库中拥有 ALTER ANY DATABASE EVENT NOTIFICATION 权限。

若要删除作用域为服务器级别的事件通知,用户至少必须是事件通知的所有者,或必须在服务器中拥有 ALTER ANY EVENT NOTIFICATION 权限。

若要删除针对特定队列的事件通知,用户至少必须是事件通知的所有者或必须对父队列拥有 ALTER 权限。

示例

以下示例创建具有数据库范围内的事件通知,然后删除该通知:

USE AdventureWorks2008R2;
GO
CREATE EVENT NOTIFICATION NotifyALTER_T1
ON DATABASE
FOR ALTER_TABLE
TO SERVICE 'NotifyService',
    '8140a771-3c4b-4479-8ac0-81008ab17984';
GO
DROP EVENT NOTIFICATION NotifyALTER_T1
ON DATABASE;