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 event.) ALTER_APPLICATION_ROLE(适用于 ALTER APPLICATION ROLE 语句和 sp_approlepassword)。 DROP_APPLICATION_ROLE(适用于 DROP APPLICATION ROLE 语句和 sp_dropapprole)。
CREATE_ASSEMBLY ALTER_ASSEMBLY DROP_ASSEMBLY
CREATE_ASYMMETRIC_KEY ALTER_ASYMMETRIC_KEY DROP_ASYMMETRIC_KEY
ALTER_AUTHORIZATION ALTER_AUTHORIZATION_DATABASE(当指定 ON DATABASE 时,适用于 ALTER AUTHORIZATION 语句和 sp_changedbowner。)
CREATE_BROKER_PRIORITY CREATE_BROKER_PRIORITY CREATE_BROKER_PRIORITY
CREATE_CERTIFICATE ALTER_CERTIFICATE DROP_CERTIFICATE
CREATE_CONTRACT DROP_CONTRACT
CREATE_CREDENTIAL ALTER_CREDENTIAL DROP_CREDENTIAL
GRANT_DATABASE DENY_DATABASE REVOKE_DATABASE
CREATE_DATABASE_AUDIT_SPEFICIATION ALTER_DATABASE_AUDIT_SPEFICIATION DENY_DATABASE_AUDIT_SPEFICIATION
CREATE_DATABASE_ENCRYPTION_KEY ALTER_DATABASE_ENCRYPTION_KEY DROP_DATABASE_ENCRYPTION_KEY
CREATE_DEFAULT DROP_DEFAULT
BIND_DEFAULT(适用于 sp_bindefault。) UNBIND_DEFAULT(适用于 sp_unbindefault。)
CREATE_EVENT_NOTIFICATION DROP_EVENT_NOTIFICATION
CREATE_EXTENDED_PROPERTY(适用于 sp_addextendedproperty。) ALTER_EXTENDED_PROPERTY(适用于 sp_updateextendedproperty。) DROP_EXTENDED_PROPERTY(适用于 sp_dropextendedproperty。)
CREATE_FULLTEXT_CATALOG(当指定 create 时适用于 CREATE FULLTEXT CATALOG 语句和 sp_fulltextcatalog。) ALTER_FULLTEXT_CATALOG(当指定 start_incremental、start_full、Stop 或 Rebuild 时,适用于 ALTER FULLTEXT CATALOG 语句 sp_fulltextcatalog,当指定 enable 时,适用于 sp_fulltext_database。) DROP_FULLTEXT_CATALOG(当指定 drop 时,适用于 DROP FULLTEXT CATALOG 语句和 sp_fulltextcatalog。)
CREATE_FULLTEXT_INDEX(当指定 create 时,适用于 CREATE FULLTEXT INDEX 语句和 sp_fulltexttable。) ALTER_FULLTEXT_INDEX(当指定 start_full、start_incremental 或stop 时,适用于 ALTER FULLTEXT INDEX 语句和 sp_fulltextcatalog,当指定除了 createdrop 操作之外时,适用于 sp_fulltext_columnsp_fulltext_table。) DROP_FULLTEXT_INDEX(当指定 drop 时,适用于 DROP FULLTEXT INDEX 语句和 sp_fulltexttable。)
CREATE_FULLTEXT_STOPLIST ALTER_FULLTEXT_STOPLIST DROP_FULLTEXT_STOPLIST
CREATE_FUNCTION ALTER_FUNCTION DROP_FUNCTION
CREATE_INDEX ALTER_INDEX(适用于ALTER INDEX 语句和 sp_indexoption。) DROP_INDEX
CREATE_MASTER_KEY ALTER_MASTER_KEY DROP_MASTER_KEY
CREATE_MESSAGE_TYPE ALTER_MESSAGE_TYPE DROP_MESSAGE_TYPE
CREATE_PARTITION_FUNCTION ALTER_PARTITION_FUNCTION DROP_PARTITION_FUNCTION
CREATE_PARTITION_SCHEME ALTER_PARTITION_SCHEME 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(当指定 DROP 或 DROP ALL 时适用于 sp_control_plan_guide 。)
CREATE_PROCEDURE ALTER_PROCEDURE(适用于 ALTER PROCEDURE 语句和 sp_procoption。) DROP_PROCEDURE
CREATE_QUEUE ALTER_QUEUE DROP_QUEUE
CREATE_REMOTE_SERVICE_BINDING ALTER_REMOTE_SERVICE_BINDING DROP_REMOTE_SERVICE_BINDING
CREATE_SPATIAL_INDEX
RENAME(适用于 sp_rename
CREATE_ROLE(适用于 CREATE ROLE 语句、 sp_addrolesp_addgroup。) ALTER_ROLE DROP_ROLE(适用于 DROP ROLE 语句、 sp_droprolesp_dropgroup。)
ADD_ROLE_MEMBER DROP_ROLE_MEMBER
CREATE_ROUTE ALTER_ROUTE DROP_ROUTE
CREATE_RULE 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
CREATE_SEARCH_PROPERTY_LIST ALTER_SEARCH_PROPERTY_LIST DROP_SEARCH_PROPERTY_LIST
CREATE_SEQUENCE_EVENTS CREATE_SEQUENCE_EVENTS CREATE_SEQUENCE_EVENTS
CREATE_SERVER_ROLE ALTER_SERVER_ROLE DROP_SERVER_ROLE
CREATE_SERVICE ALTER_SERVICE DROP_SERVICE
ALTER_SERVICE_MASTER_KEY BACKUP_SERVICE_MASTER_KEY RESTORE_SERVICE_MASTER_KEY
ADD_SIGNATURE(用于对非架构范围的对象的签名操作;数据库,程序集,触发器) DROP_SIGNATURE
ADD_SIGNATURE_SCHEMA_OBJECT(用于架构范围的对象;存储过程,函数) DROP_SIGNATURE_SCHEMA_OBJECT
CREATE_SPATIAL_INDEX ALTER_INDEX 可用于空间索引。 DROP_INDEX 可用于空间索引。
CREATE_STATISTICS DROP_STATISTICS UPDATE_STATISTICS
CREATE_SYMMETRIC_KEY ALTER_SYMMETRIC_KEY DROP_SYMMETRIC_KEY
CREATE_SYNONYM DROP_SYNONYM
CREATE_TABLE ALTER_TABLE(适用于 ALTER TABLE 语句和 sp_tableoption。) DROP_TABLE
CREATE_TRIGGER ALTER_TRIGGER(适用于 ALTER TRIGGER 语句和 sp_settriggerorder。) DROP_TRIGGER
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 索引。
CREATE_XML_SCHEMA_COLLECTION ALTER_XML_SCHEMA_COLLECTION DROP_XML_SCHEMA_COLLECTION

具有服务器作用域的 DDL 语句

可以创建当服务器实例中的任何位置发生以下事件时被激发以响应这些事件的 DDL 触发器或事件通知。

ALTER_AUTHORIZATION_SERVER ALTER_SERVER_CONFIGURATION ALTER_INSTANCE(当指定了本地服务器实例时,适用于 sp_configuresp_addserver 。)
CREATE_AVAILABILITY_GROUP ALTER_AVAILABILITY_GROUP DROP_AVAILABILITY_GROUP
CREATE_CREDENTIAL ALTER_CREDENTIAL DROP_CREDENTIAL
CREATE_CRYPTOGRAPHIC_PROVIDER ALTER_CRYPTOGRAPHIC_PROVIDER DROP_CRYPTOGRAPHIC_PROVIDER
CREATE_DATABASE ALTER_DATABASE(适用于 ALTER DATABASE 语句和 sp_fulltext_database。) DROP_DATABASE
CREATE_ENDPOINT ALTER_ENDPOINT DROP_ENDPOINT
CREATE_EVENT_SESSION ALTER_EVENT_SESSION DROP_EVENT_SESSION
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(当指定 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 。)
CREATE_RESOURCE_POOL ALTER_RESOURCE_POOL DROP_RESOURCE_POOL
GRANT_SERVER DENY_SERVER REVOKE_SERVER
ADD_SERVER_ROLE_MEMBER DROP_SERVER_ROLE_MEMBER
CREATE_SERVER_AUDIT ALTER_SERVER_AUDIT DROP_SERVER_AUDIT
CREATE_SERVER_AUDIT_SPECIFICATION ALTER_SERVER_AUDIT_SPECIFICATION DROP_SERVER_AUDIT_SPECIFICATION
CREATE_WORKLOAD_GROUP CREATE_WORKLOAD_GROUP CREATE_WORKLOAD_GROUP

另请参阅

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