{"id":1461,"date":"2020-05-21T18:25:15","date_gmt":"2020-05-21T18:25:15","guid":{"rendered":"http:\/\/manualsqlserver.com\/?p=1461"},"modified":"2021-08-03T00:23:00","modified_gmt":"2021-08-03T00:23:00","slug":"como-usar-triggers-ddl-en-sql-server","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=1461","title":{"rendered":"Triggers DDL en SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"236\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL___D.png\" alt=\"\" class=\"wp-image-1462\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Triggers DDL en SQL Server<\/h2>\n\n\n\n<p>Los Triggers DDL son aquellos que se disparan cuando se realizan eventos DDL, que son las siglas de Data Definition Languages, estos comando son Create, Alter, Drop, GRANT, DENY, REVOKE o UPDATE STATISTICS<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Para m\u00e1s informaci\u00f3n sobre Triggers ver:<br><a href=\"https:\/\/manualsqlserver.com\/?p=385\">Triggers, definici\u00f3n y creaci\u00f3n.<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1468\" target=\"_blank\" rel=\"noreferrer noopener\">Triggers Logon.<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1431\">Triggers, activar y desactivar.<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1445\">Triggers, historial de registros eliminados.<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1452\">Triggers, historial de cambios en una tabla<\/a><\/p>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p style=\"font-size:28px\"><strong>Creando Triggers DDL<\/strong><\/p>\n\n\n\n<p>CREATE [ OR ALTER ] TRIGGER NombreTrigger<br>ON { ALL SERVER | BaseDatos }<br>{ FOR | AFTER } { TipoEvento | GrupoEventos } [ ,&#8230;n ]<br>AS<br>Begin<br>Instrucciones T-SQL<br>End<\/p>\n\n\n\n<p style=\"font-size:30px\"><strong>Eventos de un Trigger DDL<\/strong><\/p>\n\n\n\n<p>Los eventos que hacen que se dispare un Trigger DDL clasificados por el alcance de los mismos son de dos tipos:<br><strong>1. Eventos que tienen alcance de base de datos<br>2. Eventos que tienen alcance de servidor<\/strong><\/p>\n\n\n\n<p style=\"font-size:26px\"><strong>Eventos que tienen alcance de base de datos<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><tbody><tr><td>CREATE_APPLICATION_ROLE<\/td><td>ALTER_APPLICATION_ROLE<\/td><td>DROP_APPLICATION_ROLE<\/td><\/tr><tr><td>CREATE_ASSEMBLY<\/td><td>ALTER_ASSEMBLY<\/td><td>DROP_ASSEMBLY<\/td><\/tr><tr><td>CREATE_ASYMMETRIC_KEY<\/td><td>ALTER_ASYMMETRIC_KEY<\/td><td>DROP_ASYMMETRIC_KEY<\/td><\/tr><tr><td>ALTER_AUTHORIZATION<\/td><td>ALTER_AUTHORIZATION_DATABASE<\/td><td><\/td><\/tr><tr><td>CREATE_BROKER_PRIORITY<\/td><td>CREATE_BROKER_PRIORITY<\/td><td>CREATE_BROKER_PRIORITY<\/td><\/tr><tr><td>CREATE_CERTIFICATE<\/td><td>ALTER_CERTIFICATE<\/td><td>DROP_CERTIFICATE<\/td><\/tr><tr><td>CREATE_CONTRACT<\/td><td>DROP_CONTRACT<\/td><td><\/td><\/tr><tr><td>CREATE_CREDENTIAL<\/td><td>ALTER_CREDENTIAL<\/td><td>DROP_CREDENTIAL<\/td><\/tr><tr><td>GRANT_DATABASE<\/td><td>DENY_DATABASE<\/td><td>REVOKE_DATABASE<\/td><\/tr><tr><td>CREATE_DATABASE_AUDIT_SPEFICIATION<\/td><td>ALTER_DATABASE_AUDIT_SPEFICIATION<\/td><td>DENY_DATABASE_AUDIT_SPEFICIATION<\/td><\/tr><tr><td>CREATE_DATABASE_ENCRYPTION_KEY<\/td><td>ALTER_DATABASE_ENCRYPTION_KEY<\/td><td>DROP_DATABASE_ENCRYPTION_KEY<\/td><\/tr><tr><td>CREATE_DEFAULT<\/td><td>DROP_DEFAULT<\/td><td><\/td><\/tr><tr><td>BIND_DEFAULT<\/td><td>UNBIND_DEFAULT<\/td><td><\/td><\/tr><tr><td>CREATE_EVENT_NOTIFICATION<\/td><td>DROP_EVENT_NOTIFICATION<\/td><td><\/td><\/tr><tr><td>CREATE_EXTENDED_PROPERTY<\/td><td>ALTER_EXTENDED_PROPERTY<\/td><td>DROP_EXTENDED_PROPERTY<\/td><\/tr><tr><td>CREATE_FULLTEXT_CATALOG<\/td><td>ALTER_FULLTEXT_CATALOG<\/td><td>DROP_FULLTEXT_CATALOG<\/td><\/tr><tr><td>CREATE_FULLTEXT_INDEX<\/td><td>ALTER_FULLTEXT_INDEX<\/td><td>DROP_FULLTEXT_INDEX<\/td><\/tr><tr><td>CREATE_FULLTEXT_STOPLIST<\/td><td>ALTER_FULLTEXT_STOPLIST<\/td><td>DROP_FULLTEXT_STOPLIST<\/td><\/tr><tr><td>CREATE_FUNCTION<\/td><td>ALTER_FUNCTION<\/td><td>DROP_FUNCTION<\/td><\/tr><tr><td>CREATE_INDEX<\/td><td>ALTER_INDEX<\/td><td>DROP_INDEX<\/td><\/tr><tr><td>CREATE_MASTER_KEY<\/td><td>ALTER_MASTER_KEY<\/td><td>DROP_MASTER_KEY<\/td><\/tr><tr><td>CREATE_MESSAGE_TYPE<\/td><td>ALTER_MESSAGE_TYPE<\/td><td>DROP_MESSAGE_TYPE<\/td><\/tr><tr><td>CREATE_PARTITION_FUNCTION<\/td><td>ALTER_PARTITION_FUNCTION<\/td><td>DROP_PARTITION_FUNCTION<\/td><\/tr><tr><td>CREATE_PARTITION_SCHEME<\/td><td>ALTER_PARTITION_SCHEME<\/td><td>DROP_PARTITION_SCHEME<\/td><\/tr><tr><td>CREATE_PLAN_GUIDE<\/td><td>ALTER_PLAN_GUIDE<\/td><td>DROP_PLAN_GUIDE<\/td><\/tr><tr><td>CREATE_PROCEDURE<\/td><td>ALTER_PROCEDURE<\/td><td>DROP_PROCEDURE<\/td><\/tr><tr><td>CREATE_QUEUE<\/td><td>ALTER_QUEUE<\/td><td>DROP_QUEUE<\/td><\/tr><tr><td>CREATE_REMOTE_SERVICE_BINDING<\/td><td>ALTER_REMOTE_SERVICE_BINDING<\/td><td>DROP_REMOTE_SERVICE_BINDING<\/td><\/tr><tr><td>CREATE_SPATIAL_INDEX<\/td><td><\/td><td><\/td><\/tr><tr><td>RENAME<\/td><td><\/td><td><\/td><\/tr><tr><td>CREATE_ROLE<\/td><td>ALTER_ROLE<\/td><td>DROP_ROLE<\/td><\/tr><tr><td>ADD_ROLE_MEMBER<\/td><td>DROP_ROLE_MEMBER<\/td><td><\/td><\/tr><tr><td>CREATE_ROUTE<\/td><td>ALTER_ROUTE<\/td><td>DROP_ROUTE<\/td><\/tr><tr><td>CREATE_RULE<\/td><td>DROP_RULE<\/td><td><\/td><\/tr><tr><td>BIND_RULE<\/td><td>UNBIND_RULE<\/td><td><\/td><\/tr><tr><td>CREATE_SCHEMA<\/td><td>ALTER_SCHEMA<\/td><td>DROP_SCHEMA<\/td><\/tr><tr><td>CREATE_SEARCH_PROPERTY_LIST<\/td><td>ALTER_SEARCH_PROPERTY_LIST<\/td><td>DROP_SEARCH_PROPERTY_LIST<\/td><\/tr><tr><td>CREATE_SEQUENCE_EVENTS<\/td><td>CREATE_SEQUENCE_EVENTS<\/td><td>CREATE_SEQUENCE_EVENTS<\/td><\/tr><tr><td>CREATE_SERVER_ROLE<\/td><td>ALTER_SERVER_ROLE<\/td><td>DROP_SERVER_ROLE<\/td><\/tr><tr><td>CREATE_SERVICE<\/td><td>ALTER_SERVICE<\/td><td>DROP_SERVICE<\/td><\/tr><tr><td>ALTER_SERVICE_MASTER_KEY<\/td><td>BACKUP_SERVICE_MASTER_KEY<\/td><td>RESTORE_SERVICE_MASTER_KEY<\/td><\/tr><tr><td>ADD_SIGNATURE<\/td><td>DROP_SIGNATURE<\/td><td><\/td><\/tr><tr><td>ADD_SIGNATURE_SCHEMA_OBJECT<\/td><td>DROP_SIGNATURE_SCHEMA_OBJECT<\/td><td><\/td><\/tr><tr><td>CREATE_SPATIAL_INDEX<\/td><td>ALTER_INDEX<\/td><td>DROP_INDEX<\/td><\/tr><tr><td>CREATE_STATISTICS<\/td><td>DROP_STATISTICS<\/td><td>UPDATE_STATISTICS<\/td><\/tr><tr><td>CREATE_SYMMETRIC_KEY<\/td><td>ALTER_SYMMETRIC_KEY<\/td><td>DROP_SYMMETRIC_KEY<\/td><\/tr><tr><td>CREATE_SYNONYM<\/td><td>DROP_SYNONYM<\/td><td><\/td><\/tr><tr><td>CREATE_TABLE<\/td><td>ALTER_TABLE<\/td><td>DROP_TABLE<\/td><\/tr><tr><td>CREATE_TRIGGER<\/td><td>ALTER_TRIGGER<\/td><td>DROP_TRIGGER<\/td><\/tr><tr><td>CREATE_TYPE<\/td><td>DROP_TYPE<\/td><td><\/td><\/tr><tr><td>CREATE_USER<\/td><td>ALTER_USER<\/td><td>DROP_USER<\/td><\/tr><tr><td>CREATE_VIEW<\/td><td>ALTER_VIEW<\/td><td>DROP_VIEW<\/td><\/tr><tr><td>CREATE_XML_INDEX<\/td><td>ALTER_INDEX<\/td><td>DROP_INDEX<\/td><\/tr><tr><td>CREATE_XML_SCHEMA_COLLECTION<\/td><td>ALTER_XML_SCHEMA_COLLECTION<\/td><td>DROP_XML_SCHEMA_COLLECTION<\/td><\/tr><\/tbody><\/table><figcaption>Eventos DDL a nivel de base de datos. <br>Fuente: Documentaci\u00f3n Microsoft<\/figcaption><\/figure>\n\n\n\n<p style=\"font-size:26px\"><strong>Eventos DDL que tienen alcance en el servidor<\/strong><\/p>\n\n\n\n<p>Se pueden crear en respuesta de cualquiera de los siguientes eventos, los que ocurren en la instancia de SQL Server.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>ALTER_AUTHORIZATION_SERVER<\/td><td>ALTER_SERVER_CONFIGURATION<\/td><td>ALTER_INSTANCE <\/td><\/tr><tr><td>CREATE_AVAILABILITY_GROUP<\/td><td>ALTER_AVAILABILITY_GROUP<\/td><td>DROP_AVAILABILITY_GROUP<\/td><\/tr><tr><td>CREATE_CREDENTIAL<\/td><td>ALTER_CREDENTIAL<\/td><td>DROP_CREDENTIAL<\/td><\/tr><tr><td>CREATE_CRYPTOGRAPHIC_PROVIDER<\/td><td>ALTER_CRYPTOGRAPHIC_PROVIDER<\/td><td>DROP_CRYPTOGRAPHIC_PROVIDER<\/td><\/tr><tr><td>CREATE_DATABASE<\/td><td>ALTER_DATABASE<\/td><td>DROP_DATABASE<\/td><\/tr><tr><td>CREATE_ENDPOINT<\/td><td>ALTER_ENDPOINT<\/td><td>DROP_ENDPOINT<\/td><\/tr><tr><td>CREATE_EVENT_SESSION<\/td><td>ALTER_EVENT_SESSION<\/td><td>DROP_EVENT_SESSION<\/td><\/tr><tr><td>CREATE_EXTENDED_PROCEDURE<\/td><td>DROP_EXTENDED_PROCEDURE<\/td><td><\/td><\/tr><tr><td>CREATE_LINKED_SERVER<\/td><td>ALTER_LINKED_SERVER<\/td><td>DROP_LINKED_SERVER<\/td><\/tr><tr><td>CREATE_LINKED_SERVER_LOGIN<\/td><td>DROP_LINKED_SERVER_LOGIN<\/td><td><\/td><\/tr><tr><td>CREATE_LOGIN<\/td><td>ALTER_LOGIN<\/td><td>DROP_LOGIN<\/td><\/tr><tr><td>CREATE_MESSAGE<\/td><td>ALTER_MESSAGE<\/td><td>DROP_MESSAGE<\/td><\/tr><tr><td>CREATE_REMOTE_SERVER<\/td><td>ALTER_REMOTE_SERVER<\/td><td>DROP_REMOTE_SERVER<\/td><\/tr><tr><td>CREATE_RESOURCE_POOL<\/td><td>ALTER_RESOURCE_POOL<\/td><td>DROP_RESOURCE_POOL<\/td><\/tr><tr><td>GRANT_SERVER<\/td><td>DENY_SERVER<\/td><td>REVOKE_SERVER<\/td><\/tr><tr><td>ADD_SERVER_ROLE_MEMBER<\/td><td>DROP_SERVER_ROLE_MEMBER<\/td><td><\/td><\/tr><tr><td>CREATE_SERVER_AUDIT<\/td><td>ALTER_SERVER_AUDIT<\/td><td>DROP_SERVER_AUDIT<\/td><\/tr><tr><td>CREATE_SERVER_AUDIT_SPECIFICATION<\/td><td>ALTER_SERVER_AUDIT_SPECIFICATION<\/td><td>DROP_SERVER_AUDIT_SPECIFICATION<\/td><\/tr><tr><td>CREATE_WORKLOAD_GROUP<\/td><td>ALTER_WORKLOAD_GROUP<\/td><td>DROP_WORKLOAD_GROUP<\/td><\/tr><\/tbody><\/table><figcaption>Eventos DDL a nivel de servidor.<br>Fuente: Documentaci\u00f3n Microsoft<\/figcaption><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Ejemplos<\/strong><\/p>\n\n\n\n<p>Usando la base de datos Northwind<br>use Northwind<br>go<\/p>\n\n\n\n<p><strong>Crear un Trigger para evitar que se creen, modifiquen o eliminen tablas<br><\/strong>Create Trigger trNoCrearModificarBorrarTablas<br>ON DataBase FOR Create_Table, DROP_TABLE, ALTER_TABLE<br>AS<br>BEGIN<br>RAISERROR (&#8216;Transacci\u00f3n anulada, no se permite crear, editar o eliminar tablas&#8217; , 16, 1)<br>Rollback transaction<br>END<br>go<\/p>\n\n\n\n<p>Al intentar crear una tabla<br>Create table Prueba<br>( Codigo nchar(4), Descripcion nvarchar(100) )<br>go<br>Resultado<br><strong>Mens 50000, Nivel 16, Estado 1, Procedimiento trNoCrearModificarBorrarTablas, L\u00ednea 131<br>Transacci\u00f3n anulada, no se permite crear, editar o eliminar tablas<br>Mens. 3609, Nivel 16, Estado 2, L\u00ednea 127<br>La transacci\u00f3n termin\u00f3 en el desencadenador. Se anul\u00f3 el lote.<\/strong><\/p>\n\n\n\n<p>Para poder crear tablas, se debe eliminar el Trigger o solamente desactivar (<a href=\"https:\/\/manualsqlserver.com\/?p=1431\">Ver Triggers Activar &#8211; Desactivar<\/a>)<br>disable trigger trNoCrearModificarBorrarTablas on Database<br>go<br>Probar ahora si se puede crear una tabla<br>Create table Prueba<br>( Codigo nchar(4), Descripcion nvarchar(100) )<br>go<br>Resultado: Comandos completados correctamente.<br>Para activar nuevamente el Trigger se debe escribir la siguiente instrucci\u00f3n:<br>Enable trigger trNoCrearModificarBorrarTablas on Database<br>go<\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>La funci\u00f3n EventData()<\/strong><\/p>\n\n\n\n<p>Esta funci\u00f3n devuelve informaci\u00f3n sobre eventos del servidor o de la base de datos.<br>Un Trigger Logon o DDL tambi\u00e9n admite el uso interno de EVENTDATA.<br>Sintaxis:<br>EventData()<\/p>\n\n\n\n<p><strong>Crear un Trigger que se dispare cuando se crea una vista y capture el evento creado.<br><\/strong>Create trigger trCapturarCrearVista on Database<br>For Create_View<br>As<br>Begin<br>Select EVENTDATA()<br>End<br>go<br>Crear una vista para que el trigger creado se dispare<br>create view vistaCategorias<br>As<br>select C.CategoryID As &#8216;C\u00f3digo&#8217;, C.CategoryName As &#8216;Nombre&#8217;<br>from Categories As C<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__01-1024x435.png\" alt=\"\" class=\"wp-image-1463\" width=\"778\" height=\"330\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__01-1024x435.png 1024w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__01-300x127.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__01-768x326.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__01.png 1244w\" sizes=\"auto, (max-width: 778px) 100vw, 778px\" \/><\/figure><\/div>\n\n\n\n<p><br>Puede notar que el resultado se presenta en un esquema XML.<\/p>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p style=\"font-size:18px\"><strong>Crear un trigger que se dispare al crear, modificar o eliminar un procedimiento almacenado, almacenar la instrucci\u00f3n ejecutada en una tabla SPHistorial<\/strong><\/p>\n\n\n\n<p><strong>Primero crear la tabla, si se creo el trigger del ejercicio anterior debemos desactivarlo.<br><\/strong>disable trigger trNoCrearModificarBorrarTablas on Database<br>go<br><strong>Ahora si se podr\u00e1 crear la tabla<\/strong><br>Create table HistorialCambiosStoreProcedures<br>(TipoEvento nvarchar(200), Fecha DateTime,<br>Servidor nvarchar(100), InicioSesion nvarchar(100),<br>Equipo nvarchar(100), ComandoTSQL nvarchar(400)<br>)<br>go<br><strong>Crear el Trigger para crear, editar o eliminar un Store Procedure<br><\/strong>Create trigger trHistoriaSP on Database<br>for Create_Procedure, Alter_Procedure, Drop_Procedure<br>As<br>Begin<br>insert into HistorialCambiosStoreProcedures<br>(TipoEvento, Fecha, Servidor, InicioSesion, Equipo, ComandoTSQL)<br>Select EVENTDATA().value (&#8216;(\/EVENT_INSTANCE\/EventType)[1]&#8217;,&#8217;nvarchar(200)&#8217;),<br>EVENTDATA().value (&#8216;(\/EVENT_INSTANCE\/PostTime)[1]&#8217;,&#8217;Datetime&#8217;),<br>EVENTDATA().value (&#8216;(\/EVENT_INSTANCE\/ServerName)[1]&#8217;,&#8217;nvarchar(100)&#8217;),<br>EVENTDATA().value (&#8216;(\/EVENT_INSTANCE\/LoginName)[1]&#8217;,&#8217;nvarchar(100)&#8217;),<br>HOST_NAME(), EVENTDATA().value (&#8216;(\/EVENT_INSTANCE\/TSQLCommand\/CommandText)[1]&#8217;,&#8217;nvarchar(400)&#8217;)<br>End<br>go<br>Para que el Trigger se dispare, crear un procedimiento almacenado para listar los clientes<br>Create procedure spClientesListado<br>As<br>Select C.CustomerID As &#8216;C\u00f3digo&#8217;, C.CompanyName As &#8216;Cliente&#8217;<br>from Customers As C<br>order by Cliente<br>go<br>Modificar el procedimiento para incluir un campo adicional<br>Alter procedure spClientesListado<br>As<br>Select C.CustomerID As &#8216;C\u00f3digo&#8217;, C.CompanyName As &#8216;Cliente&#8217;,<br>C.Address As &#8216;Direcci\u00f3n&#8217;<br>from Customers As C<br>order by Cliente<br>go<br>Borrar el SP<br>Drop procedure spClientesListado<br>go<\/p>\n\n\n\n<p>Para visualizar el contenido del historial<br>select * from HistorialCambiosStoreProcedures<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__02-1024x119.png\" alt=\"\" class=\"wp-image-1464\" width=\"727\" height=\"84\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__02-1024x119.png 1024w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__02-300x35.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__02-768x90.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_Triggers_DDL__02.png 1474w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Triggers DDL en SQL Server Los Triggers DDL son aquellos que se disparan cuando se realizan eventos DDL, que son las siglas de Data Definition Languages, estos comando son Create, Alter, Drop, GRANT, DENY, REVOKE o UPDATE STATISTICS<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=1461\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1462,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[147,145,150,59],"class_list":["post-1461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-triggersql","tag-alter-trigger","tag-create-trigger","tag-event_data","tag-triggers","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1461"}],"version-history":[{"count":3,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1461\/revisions"}],"predecessor-version":[{"id":2552,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1461\/revisions\/2552"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1462"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}