DDL Event Groups

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance

The following tables list the DDL event groups that can be used to run a DDL trigger or an event notification, and also the Transact-SQL statements they cover. Note the inclusive nature of the event groups. For example, a DDL trigger or event notification that specifies FOR DDL_TABLE_EVENTS (10018) covers the CREATE TABLE, ALTER TABLE and DROP TABLE Transact-SQL statements. A DDL trigger or event notification that specifies FOR DDL_TABLE_VIEW_EVENTS (10017) covers all Transact-SQL statements under the types DDL_TABLE_EVENTS, DDL_VIEW_EVENTS, DDL_INDEX_EVENTS, and DDL_STATISTICS_EVENTS.

Note

Certain system stored procedures that perform DDL-like operations can also fire DDL triggers or 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.

Events

The events listed under DDL_DATABASE_LEVEL_EVENTS execute at the server (instance) or database level. Events listed under DDL_SERVER_LEVEL_EVENTS execute only at the server level.

parent_type type name
NULL 296 ALTER_SERVER_CONFIGURATION
NULL 10001 DDL_EVENTS
10001 10016 DDL_DATABASE_LEVEL_EVENTS
10016 10027 DDL_ASSEMBLY_EVENTS
10027 102 ALTER_ASSEMBLY
10027 101 CREATE_ASSEMBLY
10027 103 DROP_ASSEMBLY
10016 10029 DDL_DATABASE_SECURITY_EVENTS
10029 10033 DDL_APPLICATION_ROLE_EVENTS
10033 138 ALTER_APPLICATION_ROLE
10033 137 CREATE_APPLICATION_ROLE
10033 139 DROP_APPLICATION_ROLE
10029 10038 DDL_ASYMMETRIC_KEY_EVENTS
10038 248 ALTER_ASYMMETRIC_KEY
10038 247 CREATE_ASYMMETRIC_KEY
10038 249 DROP_ASYMMETRIC_KEY
10029 10036 DDL_AUTHORIZATION_DATABASE_EVENTS
10036 205 ALTER_AUTHORIZATION_DATABASE
10029 10030 DDL_CERTIFICATE_EVENTS
10030 198 ALTER_CERTIFICATE
10030 197 CREATE_CERTIFICATE
10030 199 DROP_CERTIFICATE
10029 10039 DDL_CRYPTO_SIGNATURE_EVENTS
10039 257 ADD_SIGNATURE
10039 255 ADD_SIGNATURE_SCHEMA_OBJECT
10039 258 DROP_SIGNATURE
10039 256 DROP_SIGNATURE_SCHEMA_OBJECT
10029 10066 DDL_DATABASE_AUDIT_SPECIFICATION_EVENTS
10066 291 ALTER_DATABASE_AUDIT_SPECIFICATION
10066 290 CREATE_DATABASE_AUDIT_SPECIFICATION
10066 292 DROP_DATABASE_AUDIT_SPECIFICATION
10029 10062 DDL_DATABASE_ENCRYPTION_KEY_EVENTS
10062 279 ALTER_DATABASE_ENCRYPTION_KEY
10062 278 CREATE_DATABASE_ENCRYPTION_KEY
10062 280 DROP_DATABASE_ENCRYPTION_KEY
10029 10035 DDL_GDR_DATABASE_EVENTS
10035 171 DENY_DATABASE
10035 170 GRANT_DATABASE
10035 172 REVOKE_DATABASE
10029 10040 DDL_MASTER_KEY_EVENTS
10040 253 ALTER_MASTER_KEY
10040 252 CREATE_MASTER_KEY
10040 254 DROP_MASTER_KEY
10029 10032 DDL_ROLE_EVENTS
10032 207 ADD_ROLE_MEMBER
10032 135 ALTER_ROLE
10032 134 CREATE_ROLE
10032 136 DROP_ROLE
10032 208 DROP_ROLE_MEMBER
10029 10034 DDL_SCHEMA_EVENTS
10034 142 ALTER_SCHEMA
10034 141 CREATE_SCHEMA
10034 143 DROP_SCHEMA
10029 10037 DDL_SYMMETRIC_KEY_EVENTS
10037 245 ALTER_SYMMETRIC_KEY
10037 244 CREATE_SYMMETRIC_KEY
10037 246 DROP_SYMMETRIC_KEY
10029 10031 DDL_USER_EVENTS
10031 132 ALTER_USER
10031 131 CREATE_USER
10031 133 DROP_USER
10016 10052 DDL_DEFAULT_EVENTS
10052 218 BIND_DEFAULT
10052 220 CREATE_DEFAULT
10052 231 DROP_DEFAULT
10052 242 UNBIND_DEFAULT
10016 10026 DDL_EVENT_NOTIFICATION_EVENTS
10026 74 CREATE_EVENT_NOTIFICATION
10026 76 DROP_EVENT_NOTIFICATION
10016 10053 DDL_EXTENDED_PROPERTY_EVENTS
10053 211 ALTER_EXTENDED_PROPERTY
10053 222 CREATE_EXTENDED_PROPERTY
10053 233 DROP_EXTENDED_PROPERTY
10016 10054 DDL_FULLTEXT_CATALOG_EVENTS
10054 212 ALTER_FULLTEXT_CATALOG
10054 223 CREATE_FULLTEXT_CATALOG
10054 234 DROP_FULLTEXT_CATALOG
10016 10067 DDL_FULLTEXT_STOPLIST_EVENTS
10067 294 ALTER_FULLTEXT_STOPLIST
10067 293 CREATE_FULLTEXT_STOPLIST
10067 295 DROP_FULLTEXT_STOPLIST
10016 10023 DDL_FUNCTION_EVENTS
10023 62 ALTER_FUNCTION
10023 61 CREATE_FUNCTION
10023 63 DROP_FUNCTION
10016 10049 DDL_PARTITION_EVENTS
10049 10050 DDL_PARTITION_FUNCTION_EVENTS
10050 192 ALTER_PARTITION_FUNCTION
10050 191 CREATE_PARTITION_FUNCTION
10050 193 DROP_PARTITION_FUNCTION
10049 10051 DDL_PARTITION_SCHEME_EVENTS
10051 195 ALTER_PARTITION_SCHEME
10051 194 CREATE_PARTITION_SCHEME
10051 196 DROP_PARTITION_SCHEME
10016 10055 DDL_PLAN_GUIDE_EVENTS
10055 216 ALTER_PLAN_GUIDE
10055 228 CREATE_PLAN_GUIDE
10055 238 DROP_PLAN_GUIDE
10016 10024 DDL_PROCEDURE_EVENTS
10024 52 ALTER_PROCEDURE
10024 51 CREATE_PROCEDURE
10024 53 DROP_PROCEDURE
10016 10056 DDL_RULE_EVENTS
10056 219 BIND_RULE
10056 229 CREATE_RULE
10056 239 DROP_RULE
10056 243 UNBIND_RULE
10016 10069 DDL_SEARCH_PROPERTY_LIST_EVENTS
10069 298 ALTER_SEARCH_PROPERTY_LIST
10069 297 CREATE_SEARCH_PROPERTY_LIST
10069 299 DROP_SEARCH_PROPERTY_LIST
10016 10070 DDL_SEQUENCE_EVENTS
10070 304 ALTER_SEQUENCE
10070 303 CREATE_SEQUENCE
10070 305 DROP_SEQUENCE
10016 10041 DDL_SSB_EVENTS
10041 10063 DDL_BROKER_PRIORITY_EVENTS
10063 282 ALTER_BROKER_PRIORITY
10063 281 CREATE_BROKER_PRIORITY
10063 283 DROP_BROKER_PRIORITY
10041 10043 DDL_CONTRACT_EVENTS
10043 154 CREATE_CONTRACT
10043 156 DROP_CONTRACT
10041 10042 DDL_MESSAGE_TYPE_EVENTS
10042 152 ALTER_MESSAGE_TYPE
10042 151 CREATE_MESSAGE_TYPE
10042 153 DROP_MESSAGE_TYPE
10041 10044 DDL_QUEUE_EVENTS
10044 158 ALTER_QUEUE
10044 157 CREATE_QUEUE
10044 159 DROP_QUEUE
10041 10047 DDL_REMOTE_SERVICE_BINDING_EVENTS
10047 175 ALTER_REMOTE_SERVICE_BINDING
10047 174 CREATE_REMOTE_SERVICE_BINDING
10047 176 DROP_REMOTE_SERVICE_BINDING
10041 10046 DDL_ROUTE_EVENTS
10046 165 ALTER_ROUTE
10046 164 CREATE_ROUTE
10046 166 DROP_ROUTE
10041 10045 DDL_SERVICE_EVENTS
10045 162 ALTER_SERVICE
10045 161 CREATE_SERVICE
10045 163 DROP_SERVICE
10016 10022 DDL_SYNONYM_EVENTS
10022 34 CREATE_SYNONYM
10022 36 DROP_SYNONYM
10016 10017 DDL_TABLE_VIEW_EVENTS
10017 10020 DDL_INDEX_EVENTS
10020 213 ALTER_FULLTEXT_INDEX
10020 25 ALTER_INDEX
10020 224 CREATE_FULLTEXT_INDEX
10020 24 CREATE_INDEX
10020 274 CREATE_SPATIAL_INDEX
10020 206 CREATE_XML_INDEX
10020 235 DROP_FULLTEXT_INDEX
10020 26 DROP_INDEX
10017 10021 DDL_STATISTICS_EVENTS
10021 27 CREATE_STATISTICS
10021 29 DROP_STATISTICS
10021 28 UPDATE_STATISTICS
10017 10018 DDL_TABLE_EVENTS
10018 22 ALTER_TABLE
10018 21 CREATE_TABLE
10018 23 DROP_TABLE
10017 10019 DDL_VIEW_EVENTS
10019 42 ALTER_VIEW
10019 41 CREATE_VIEW
10019 43 DROP_VIEW
10016 10025 DDL_TRIGGER_EVENTS
10025 72 ALTER_TRIGGER
10025 71 CREATE_TRIGGER
10025 73 DROP_TRIGGER
10016 10028 DDL_TYPE_EVENTS
10028 91 CREATE_TYPE
10028 93 DROP_TYPE
10016 10048 DDL_XML_SCHEMA_COLLECTION_EVENTS
10048 178 ALTER_XML_SCHEMA_COLLECTION
10048 177 CREATE_XML_SCHEMA_COLLECTION
10048 179 DROP_XML_SCHEMA_COLLECTION
10016 241 RENAME
10001 10002 DDL_SERVER_LEVEL_EVENTS
10002 214 ALTER_INSTANCE
10002 10071 DDL_AVAILABILITY_GROUP_EVENTS
10071 307 ALTER_AVAILABILITY_GROUP
10071 306 CREATE_AVAILABILITY_GROUP
10071 308 DROP_AVAILABILITY_GROUP
10002 10004 DDL_DATABASE_EVENTS
10004 202 ALTER_DATABASE
10004 201 CREATE_DATABASE
10004 203 DROP_DATABASE
10002 10003 DDL_ENDPOINT_EVENTS
10003 182 ALTER_ENDPOINT
10003 181 CREATE_ENDPOINT
10003 183 DROP_ENDPOINT
10002 10057 DDL_EVENT_SESSION_EVENTS
10057 265 ALTER_EVENT_SESSION
10057 264 CREATE_EVENT_SESSION
10057 266 DROP_EVENT_SESSION
10002 10011 DDL_EXTENDED_PROCEDURE_EVENTS
10011 221 CREATE_EXTENDED_PROCEDURE
10011 232 DROP_EXTENDED_PROCEDURE
10002 10012 DDL_LINKED_SERVER_EVENTS
10012 263 ALTER_LINKED_SERVER
10012 225 CREATE_LINKED_SERVER
10012 10013 DDL_LINKED_SERVER_LOGIN_EVENTS
10013 226 CREATE_LINKED_SERVER_LOGIN
10013 236 DROP_LINKED_SERVER_LOGIN
10012 262 DROP_LINKED_SERVER
10002 10014 DDL_MESSAGE_EVENTS
10014 215 ALTER_MESSAGE
10014 227 CREATE_MESSAGE
10014 237 DROP_MESSAGE
10002 10015 DDL_REMOTE_SERVER_EVENTS
10015 217 ALTER_REMOTE_SERVER
10015 230 CREATE_REMOTE_SERVER
10015 240 DROP_REMOTE_SERVER
10002 10058 DDL_RESOURCE_GOVERNOR_EVENTS
10058 273 ALTER_RESOURCE_GOVERNOR_CONFIG
10058 10059 DDL_RESOURCE_POOL
10059 268 ALTER_RESOURCE_POOL
10059 267 CREATE_RESOURCE_POOL
10059 269 DROP_RESOURCE_POOL
10058 10060 DDL_WORKLOAD_GROUP
10060 271 ALTER_WORKLOAD_GROUP
10060 270 CREATE_WORKLOAD_GROUP
10060 272 DROP_WORKLOAD_GROUP
10002 10005 DDL_SERVER_SECURITY_EVENTS
10005 209 ADD_SERVER_ROLE_MEMBER
10005 301 ALTER_SERVER_ROLE
10005 300 CREATE_SERVER_ROLE
10005 10008 DDL_AUTHORIZATION_SERVER_EVENTS
10008 204 ALTER_AUTHORIZATION_SERVER
10005 10009 DDL_CREDENTIAL_EVENTS
10009 260 ALTER_CREDENTIAL
10009 259 CREATE_CREDENTIAL
10009 261 DROP_CREDENTIAL
10005 10061 DDL_CRYPTOGRAPHIC_PROVIDER_EVENTS
10061 276 ALTER_CRYPTOGRAPHIC_PROVIDER
10061 275 CREATE_CRYPTOGRAPHIC_PROVIDER
10061 277 DROP_CRYPTOGRAPHIC_PROVIDER
10005 10007 DDL_GDR_SERVER_EVENTS
10007 168 DENY_SERVER
10007 167 GRANT_SERVER
10007 169 REVOKE_SERVER
10005 10006 DDL_LOGIN_EVENTS
10006 145 ALTER_LOGIN
10006 144 CREATE_LOGIN
10006 146 DROP_LOGIN
10005 10064 DDL_SERVER_AUDIT_EVENTS
10064 285 ALTER_SERVER_AUDIT
10064 284 CREATE_SERVER_AUDIT
10064 286 DROP_SERVER_AUDIT
10005 10065 DDL_SERVER_AUDIT_SPECIFICATION_EVENTS
10065 288 ALTER_SERVER_AUDIT_SPECIFICATION
10065 287 CREATE_SERVER_AUDIT_SPECIFICATION
10065 289 DROP_SERVER_AUDIT_SPECIFICATION
10005 10010 DDL_SERVICE_MASTER_KEY_EVENTS
10010 251 ALTER_SERVICE_MASTER_KEY
10005 302 DROP_SERVER_ROLE
10005 210 DROP_SERVER_ROLE_MEMBER

The data above can be created by running the following code example.

WITH DirectReports(name, parent_type, type, level, sort) AS   
(  
    SELECT CONVERT(varchar(255),type_name), parent_type, type, 1, CONVERT(varchar(255),type_name)  
    FROM sys.trigger_event_types   
    WHERE parent_type IS NULL  
    UNION ALL  
    SELECT  CONVERT(varchar(255), REPLICATE ('|   ' , level) + e.type_name),  
        e.parent_type, e.type, level + 1,  
    CONVERT (varchar(255), RTRIM(sort) + '|   ' + e.type_name)  
    FROM sys.trigger_event_types AS e  
        INNER JOIN DirectReports AS d  
        ON e.parent_type = d.type   
)  
SELECT parent_type, type, name  
FROM DirectReports  
ORDER BY sort;  

See Also

Event Notifications
DDL Triggers
DDL Events