DDL 事件

下表列出了可用于触发 DDL 触发器或事件通知的 DDL 事件。 请注意,每个事件对应于一个 Transact-SQL 语句或存储过程,其中修改了语句语法以在关键字之间包括下划线字符(_)。

重要

执行类似 DDL 操作的系统存储过程也会触发 DDL 触发器和事件通知。 测试 DDL 触发器和事件通知,以确定它们对运行的系统存储过程的响应。 例如,CREATE TYPE 语句和 sp_addtype 存储过程将触发在CREATE_TYPE事件上创建的 DDL 触发器或事件通知。

具有服务器或数据库范围的 DDL 语句

在创建触发器或事件通知的数据库中或服务器实例中的任意位置时,可以创建 DDL 触发器或事件通知,以响应以下事件。

CREATE_APPLICATION_ROLE(适用于 CREATE APPLICATION ROLE 语句和 sp_addapprole。如果创建了新架构,此事件也会触发CREATE_SCHEMA事件。 ALTER_APPLICATION_ROLE(适用于 ALTER APPLICATION ROLE 语句和 sp_approlepassword 语句。) DROP_APPLICATION_ROLE(适用于 DROP APPLICATION ROLE 语句和 sp_dropapprole
CREATE_ASSEMBLY ALTER_ASSEMBLY 删除程序集 (DROP_ASSEMBLY)
创建非对称密钥 ALTER_ASYMMETRIC_KEY 修改非对称密钥 DROP_ASYMMETRIC_KEY
ALTER_AUTHORIZATION ALTER_AUTHORIZATION_DATABASE(适用于指定 ON DATABASE 的 ALTER AUTHORIZATION 语句,以及 sp_changedbowner。)
创建代理优先级 创建_代理_优先级 创建代理优先级
CREATE_CERTIFICATE 修改证书 撤销证书
CREATE_CONTRACT DROP_CONTRACT
创建凭证 ALTER_CREDENTIAL 删除凭证
授予_数据库 拒绝数据库访问 撤销数据库
CREATE_DATABASE_AUDIT_SPECIFICATION ALTER_DATABASE_AUDIT_SPEFICIATION 拒绝数据库审核规范
创建数据库加密密钥 ALTER_DATABASE_ENCRYPTION_KEY 删除数据库加密密钥 (DROP_DATABASE_ENCRYPTION_KEY)
创建默认 DROP_DEFAULT
BIND_DEFAULT(适用于 sp_bindefault。) UNBIND_DEFAULT(适用于 sp_unbindefault。)
创建事件通知 删除事件通知
CREATE_EXTENDED_PROPERTY(适用于 sp_addextendedproperty。) ALTER_EXTENDED_PROPERTY(适用于 sp_updateextendedproperty。) DROP_EXTENDED_PROPERTY(适用于 sp_dropextendedproperty。)
CREATE_FULLTEXT_CATALOG(适用于 CREATE FULLTEXT CATALOG 语句,并在指定创建sp_fulltextcatalog)。 ALTER_FULLTEXT_CATALOG(适用于 ALTER FULLTEXT CATALOG 语句,当指定 sp_fulltextcatalogstart_incrementalstart_fullStopRebuild 时,以及指定 sp_fulltext_databaseenable 时使用。 DROP_FULLTEXT_CATALOG(适用于 DROP FULLTEXT CATALOG 语句,并在指定 dropsp_fulltextcatalog)。
CREATE_FULLTEXT_INDEX(适用于 CREATE FULLTEXT INDEX 语句,并在指定createsp_fulltexttable)。 ALTER_FULLTEXT_INDEX(适用于 ALTER FULLTEXT INDEX 语句,sp_fulltextcatalog 当指定 start_fullstart_incrementalstop 时,sp_fulltext_column,以及当指定除 createdrop 以外的任何操作时 sp_fulltext_table)。 DROP_FULLTEXT_INDEX(适用于 DROP FULLTEXT INDEX 语句及指定 drop 时使用的sp_fulltexttable)。
创建全文停止列表 ALTER_FULLTEXT_STOPLIST DROP_FULLTEXT_STOPLIST
创建函数 ALTER_FUNCTION 删除函数
创建索引 ALTER_INDEX(适用于 ALTER INDEX 语句和 sp_indexoption。) 删除索引 (DROP_INDEX)
创建主密钥 ALTER_MASTER_KEY 删除主密钥
CREATE_MESSAGE_TYPE ALTER_MESSAGE_TYPE 删除消息类型
CREATE_PARTITION_FUNCTION ALTER_PARTITION_FUNCTION(修改分区函数) 删除分区函数
创建分区方案 更改分区方案 DROP_PARTITION_SCHEME
CREATE_PLAN_GUIDE(适用于 sp_create_plan_guide。) ALTER_PLAN_GUIDE(在指定 ENABLE、ENABLE ALL、DISABLE 或 DISABLE ALL 时适用于 sp_control_plan_guide DROP_PLAN_GUIDE(适用于sp_control_plan_guide在指定 DROP 或 DROP ALL 时)。
CREATE_PROCEDURE ALTER_PROCEDURE(适用于 ALTER PROCEDURE 语句和 sp_procoption。) DROP_PROCEDURE
创建队列 修改队列 DROP_QUEUE
创建远程服务绑定 更改_远程_服务_绑定 删除远程服务绑定
创建空间索引
RENAME (适用于 sp_rename
CREATE_ROLE(适用于 CREATE ROLE 语句、 sp_addrolesp_addgroup 修改角色 DROP_ROLE(适用于 DROP ROLE 语句、 sp_droprolesp_dropgroup
添加角色成员 删除角色成员
创建_路径 ALTER_ROUTE 删除路线
创建规则 DROP_RULE
BIND_RULE(适用于 sp_bindrule UNBIND_RULE(适用于 sp_unbindrule
CREATE_SCHEMA(适用于 CREATE SCHEMA 语句、 sp_addrolesp_addusersp_addgroupsp_grantdbaccess ALTER_SCHEMA(适用于 ALTER SCHEMA 语句和 sp_changeobjectowner。) 删除模式 (DROP_SCHEMA)
创建搜索属性列表 修改搜索属性列表 删除搜索属性列表
创建序列事件 创建序列事件 创建序列事件
创建服务器角色 ALTER_SERVER_ROLE 删除服务器角色
CREATE_SERVICE ALTER_SERVICE 服务取消
ALTER_SERVICE_MASTER_KEY BACKUP_SERVICE_MASTER_KEY 恢复服务主密钥
ADD_SIGNATURE(用于非架构范围内对象的签名操作: 数据库、程序集、触发器) 删除签名
ADD_SIGNATURE_SCHEMA_OBJECT(适用于架构范围对象;存储过程、函数) 删除签名模式对象
创建空间索引 ALTER_INDEX可用于空间索引。 DROP_INDEX可用于空间索引。
创建统计信息 DROP_STATISTICS (删除统计数据) 更新统计数据
创建对称密钥 修改对称密钥 DROP_SYMMETRIC_KEY
CREATE_SYNONYM DROP_SYNONYM
创建表 ALTER_TABLE(适用于 ALTER TABLE 语句和 sp_tableoption。) DROP_TABLE
CREATE_TRIGGER ALTER_TRIGGER(适用于 ALTER TRIGGER 语句和 sp_settriggerorder。) 删除触发器
CREATE_TYPE(适用于 CREATE TYPE 语句和 sp_addtype。) DROP_TYPE(适用于 DROP TYPE 语句和 sp_droptype
CREATE_USER(适用于 CREATE USER 语句、 sp_addusersp_grantdbaccess。) ALTER_USER(适用于 ALTER USER 语句和 sp_change_users_login。) DROP_USER(适用于 DROP USER 语句、 sp_dropusersp_revokedbaccess
CREATE_VIEW ALTER_VIEW DROP_VIEW
CREATE_XML_INDEX ALTER_INDEX可用于 XML 索引。 DROP_INDEX可用于 XML 索引。
创建_XML_模式_集合 更改_XML_架构_集合 删除_XML_模式集合

具有服务器范围的 DDL 语句

可以在服务器实例中的任何位置触发 DDL 触发器或事件通知,以响应以下事件。

更改授权服务器 更改服务器配置 ALTER_INSTANCE(适用于 sp_configuresp_addserver 当指定本地服务器实例时)。
CREATE_AVAILABILITY_GROUP(创建可用性组) ALTER_AVAILABILITY_GROUP 请删除可用性组 (DROP_AVAILABILITY_GROUP)
创建凭证 ALTER_CREDENTIAL 删除凭证
CREATE_CRYPTOGRAPHIC_PROVIDER(创建加密提供程序) ALTER_CRYPTOGRAPHIC_PROVIDER(修改加密提供程序) 删除加密提供者
CREATE_DATABASE ALTER_DATABASE(适用于 ALTER DATABASE 语句和 sp_fulltext_database。) DROP_DATABASE
创建端点 ALTER_ENDPOINT 删除端点
创建事件会话 修改事件会话 删除事件会话
CREATE_EXTENDED_PROCEDURE(适用于 sp_addextendedproc。) DROP_EXTENDED_PROCEDURE(适用于 sp_dropextendedproc。)
CREATE_LINKED_SERVER(适用于 sp_addlinkedserver。) ALTER_LINKED_SERVER(适用于 sp_serveroption)。 DROP_LINKED_SERVER(当指定链接服务器时适用于 sp_dropserver)。
CREATE_LINKED_SERVER_LOGIN(适用于sp_addlinkedsrvlogin。) DROP_LINKED_SERVER_LOGIN(适用于 sp_droplinkedsrvlogin。)
CREATE_LOGIN(适用于在必须隐式创建的不存在登录名上使用的 CREATE LOGIN 语句、 sp_addloginsp_grantloginxp_grantloginsp_denylogin )。 ALTER_LOGIN(适用于 ALTER LOGIN 语句,当指定Auto_Fix时,适用于sp_defaultdbsp_defaultlanguagesp_passwordsp_change_users_login)。 DROP_LOGIN(适用于 DROP LOGIN 语句、 sp_droploginsp_revokeloginxp_revokelogin
CREATE_MESSAGE(适用于 sp_addmessage ALTER_MESSAGE(适用于 sp_altermessage。) DROP_MESSAGE(适用于 sp_dropmessage
CREATE_REMOTE_SERVER(适用于 sp_addserver。) ALTER_REMOTE_SERVER(适用于 sp_setnetname DROP_REMOTE_SERVER(适用于指定远程服务器时的sp_dropserver)。
创建资源池 ALTER_RESOURCE_POOL DROP_RESOURCE_POOL(删除资源池)
GRANT_SERVER 拒绝服务器 REVOKE_SERVER
添加服务器角色成员 删除服务器角色成员
CREATE_SERVER_AUDIT(创建服务器审核) ALTER_SERVER_AUDIT 删除服务器审核
创建服务器审核规范 ALTER_SERVER_AUDIT_SPECIFICATION 删除服务器审核规范
创建工作负载组 (CREATE_WORKLOAD_GROUP) 创建负载组 CREATE_WORKLOAD_GROUP

另请参阅

DDL 触发器
事件通知
DDL 事件组