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,当指定除了 create 或 drop 操作之外时,适用于 sp_fulltext_column 和 sp_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_addrole和 sp_addgroup。) | ALTER_ROLE | DROP_ROLE(适用于 DROP ROLE 语句、 sp_droprole和 sp_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_adduser、sp_addgroup 和 sp_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_adduser和 sp_grantdbaccess) | ALTER_USER(应用于 ALTER USER 语句和 sp_change_users_login。) | DROP_USER(适用于 DROP USER 语句、 sp_dropuser和 sp_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_configure 和 sp_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_grantlogin 和 sp_denylogin。) | ALTER_LOGIN(当指定 Auto_Fix 时,适用于sp_defaultdb、sp_defaultlanguage、sp_password 和 sp_change_users_login。) | DROP_LOGIN(适用于 DROP LOGIN 语句、 sp_droplogin、 sp_revokelogin和 xp_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 |