DDL Event Groups

The following table lists 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 (type 10018) covers the CREATE TABLE, ALTER TABLE and DROP TABLE statements. A DDL trigger or event notification that specifies FOR DDL_TABLE_VIEW_EVENTS (type 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 can only execute 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

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

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

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

210

|     |     |     DROP_SERVER_ROLE_MEMBER

This list 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;