DDL Events
The following tables list the DDL events that can be used to fire a DDL trigger or event notification. Note that each event corresponds to a Transact-SQL statement or stored procedure, with the statement syntax modified to include an underscore character (_) between keywords.
Important
System stored procedures that perform DDL-like operations also fire DDL triggers and event notifications. Test your DDL triggers and event notifications to determine their responses to system stored procedures that are run. For example, the CREATE TYPE statement and sp_addtype stored procedure will both fire a DDL trigger or event notification that is created on a CREATE_TYPE event.
DDL Statements That Have Server or Database Scope
DDL triggers or event notifications can be created to fire in response to the following events when they occur in the database in which the trigger or event notification is created, or anywhere in the server instance.
CREATE_APPLICATION_ROLE (Applies to the CREATE APPLICATION ROLE statement and sp_addapprole. If a new schema is created, this event also triggers a CREATE_SCHEMA event.) |
ALTER_APPLICATION_ROLE (Applies to the ALTER APPLICATION ROLE statement and sp_approlepassword.) |
DROP_APPLICATION_ROLE (Applies to the DROP APPLICATION ROLE statement and sp_dropapprole.) |
CREATE_ASSEMBLY |
ALTER_ASSEMBLY |
DROP_ASSEMBLY |
CREATE_ASYMMETRIC_KEY |
ALTER_ASYMMETRIC_KEY |
DROP_ASYMMETRIC_KEY |
ALTER_AUTHORIZATION |
ALTER_AUTHORIZATION_DATABASE (Applies to the ALTER AUTHORIZATION statement when ON DATABASE is specified, and sp_changedbowner.) |
|
CREATE_CERTIFICATE |
ALTER_CERTIFICATE |
DROP_CERTIFICATE |
CREATE_CONTRACT |
DROP_CONTRACT |
|
ADD_COUNTER_SIGNATURE |
DROP_COUNTER_SIGNATURE |
|
CREATE_CREDENTIAL |
ALTER_CREDENTIAL |
DROP_CREDENTIAL |
GRANT_DATABASE |
DENY_DATABASE |
REVOKE_DATABASE |
CREATE_DEFAULT |
DROP_DEFAULT |
|
BIND_DEFAULT (Applies to sp_bindefault.) |
UNBIND_DEFAULT (Applies to sp_unbindefault.) |
|
CREATE_EVENT_NOTIFICATION |
DROP_EVENT_NOTIFICATION |
|
CREATE_EXTENDED_PROPERTY (Applies to sp_addextendedproperty.) |
ALTER_EXTENDED_PROPERTY (Applies to sp_updateextendedproperty.) |
DROP_EXTENDED_PROPERTY (Applies to sp_dropextendedproperty.) |
CREATE_FULLTEXT_CATALOG (Applies to the CREATE FULLTEXT CATALOG statement and sp_fulltextcatalog when create is specified.) |
ALTER_FULLTEXT_CATALOG (Applies to the ALTER FULLTEXT CATALOG statement, sp_fulltextcatalog when start_incremental, start_full, Stop, or Rebuild is specified, and sp_fulltext_database when enable is specified.) |
DROP_FULLTEXT_CATALOG (Applies to the DROP FULLTEXT CATALOG statement and sp_fulltextcatalog when drop is specified.) |
CREATE_FULLTEXT_INDEX (Applies to the CREATE FULLTEXT INDEX statement and sp_fulltexttable when create is specified.) |
ALTER_FULLTEXT_INDEX (Applies to the ALTER FULLTEXT INDEX statement, sp_fulltextcatalog when start_full, start_incremental, or stop is specified, sp_fulltext_column, and sp_fulltext_table when any action other than create or drop is specified.) |
DROP_FULLTEXT_INDEX (Applies to the DROP FULLTEXT INDEX statement and sp_fulltexttable when drop is specified.) |
CREATE_FUNCTION |
ALTER_FUNCTION |
DROP_FUNCTION |
CREATE_INDEX |
ALTER_INDEX (Applies to the ALTER INDEX statement and 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 (Applies to sp_create_plan_guide.) |
ALTER_PLAN_GUIDE (Applies to sp_control_plan_guide when ENABLE, ENABLE ALL, DISABLE, or DISABLE ALL is specified.) |
DROP_PLAN_GUIDE (Applies to sp_control_plan_guide when DROP or DROP ALL is specified.) |
CREATE_PROCEDURE |
ALTER_PROCEDURE (Applies to the ALTER PROCEDURE statement and 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 (Applies to sp_rename) |
|
|
CREATE_ROLE (Applies to the CREATE ROLE statement, sp_addrole, and sp_addgroup.) |
ALTER_ROLE |
DROP_ROLE (Applies to the DROP ROLE statement, sp_droprole, and sp_dropgroup.) |
ADD_ROLE_MEMBER |
DROP_ROLE_MEMBER |
|
CREATE_ROUTE |
ALTER_ROUTE |
DROP_ROUTE |
CREATE_RULE |
DROP_RULE |
|
BIND_RULE (Applies to sp_bindrule.) |
UNBIND_RULE (Applies to sp_unbindrule.) |
|
CREATE_SCHEMA (Applies to the CREATE SCHEMA statement, sp_addrole, sp_adduser, sp_addgroup, and sp_grantdbaccess.) |
ALTER_SCHEMA (Applies to the ALTER SCHEMA statement and sp_changeobjectowner.) |
DROP_SCHEMA |
CREATE_SERVICE |
ALTER_SERVICE |
DROP_SERVICE |
ALTER_SERVICE_MASTER_KEY |
BACKUP_SERVICE_MASTER_KEY |
RESTORE_SERVICE_MASTER_KEY |
ADD_SIGNATURE |
DROP_SIGNATURE |
|
CREATE_SPATIAL_INDEX |
ALTER_INDEX can be used for spatial indexes. |
DROP_INDEX can be used for spatial indexes. |
CREATE_STATISTICS |
DROP_STATISTICS |
UPDATE_STATISTICS |
CREATE_SYMMETRIC_KEY |
ALTER_SYMMETRIC_KEY |
DROP_SYMMETRIC_KEY |
CREATE_SYNONYM |
DROP_SYNONYM |
|
CREATE_TABLE |
ALTER_TABLE (Applies to the ALTER TABLE statement and sp_tableoption.) |
DROP_TABLE |
CREATE_TRIGGER |
ALTER_TRIGGER (Applies to the ALTER TRIGGER statement and sp_settriggerorder.) |
DROP_TRIGGER |
CREATE_TYPE (Applies to the CREATE TYPE statement and sp_addtype.) |
DROP_TYPE (Applies to the DROP TYPE statement and sp_droptype.) |
|
CREATE_USER (Applies to the CREATE USER statement, sp_adduser, and sp_grantdbaccess.) |
ALTER_USER (Applies to ALTER USER statement and sp_change_users_login.) |
DROP_USER (Applies to the DROP USER statement, sp_dropuser, and sp_revokedbaccess.) |
CREATE_VIEW |
ALTER_VIEW |
DROP_VIEW |
CREATE_XML_INDEX |
ALTER_INDEX can be used for XML indexes. |
DROP_INDEX can be used for XML indexes. |
CREATE_XML_SCHEMA_COLLECTION |
ALTER_XML_SCHEMA_COLLECTION |
DROP_XML_SCHEMA_COLLECTION |
DDL Statements That Have Server Scope
DDL triggers or event notifications can be created to fire in response to the following events when they occur anywhere in the server instance.
ALTER_AUTHORIZATION_SERVER |
|
|
CREATE_DATABASE |
ALTER_DATABASE (Applies to the ALTER DATABASE statement and sp_fulltext_database.) |
DROP_DATABASE |
CREATE_ENDPOINT |
ALTER_ENDPOINT |
DROP_ENDPOINT |
CREATE_EXTENDED_PROCEDURE (Applies to sp_addextendedproc.) |
DROP_EXTENDED_PROCEDURE (Applies to sp_dropextendedproc.) |
|
ALTER_INSTANCE (Applies to sp_configure and sp_addserver when a local server instance is specified.) |
|
|
CREATE_LINKED_SERVER (Applies to sp_addlinkedserver.) |
ALTER_LINKED_SERVER (Applies to sp_serveroption.) |
DROP_LINKED_SERVER (Applies to sp_dropserver when a linked server is specified.) |
CREATE_LINKED_SERVER_LOGIN (Applies to sp_addlinkedsrvlogin.) |
DROP_LINKED_SERVER_LOGIN (Applies to sp_droplinkedsrvlogin.) |
|
CREATE_LOGIN (Applies to the CREATE LOGIN statement, sp_addlogin, sp_grantlogin, xp_grantlogin, and sp_denylogin when used on a nonexistent login that must be implicitly created.) |
ALTER_LOGIN (Applies to the ALTER LOGIN statement, sp_defaultdb, sp_defaultlanguage, sp_password, and sp_change_users_login when Auto_Fix is specified.) |
DROP_LOGIN (Applies to the DROP LOGIN statement, sp_droplogin, sp_revokelogin, and xp_revokelogin.) |
CREATE_MESSAGE (Applies to sp_addmessage.) |
ALTER_MESSAGE (Applies to sp_altermessage.) |
DROP_MESSAGE (Applies to sp_dropmessage.) |
CREATE_REMOTE_SERVER (Applies to sp_addserver.) |
ALTER_REMOTE_SERVER (Applies to sp_setnetname.) |
DROP_REMOTE_SERVER (Applies to sp_dropserver when a remote server is specified.) |
GRANT_SERVER |
DENY_SERVER |
REVOKE_SERVER |
ADD_SERVER_ROLE_MEMBER |
DROP_SERVER_ROLE_MEMBER |
|