Trigger DDL

29/11/2008 - 16:36 por Gilbert | Informe spam
Hice un trigger DDL solo para CREATE_TABLE para llevar un log de las tablas
que se crean.
Quiero que no ejecute cuando modifico la estructura de una tabla. Si uso el
management studio para modificar la estructura veo que como quiera se
ejecuta el trigger ya que lo que hace el m.s. es crear una tabla temporal
para luego borrar la original y renombrar la temporal.
Como puedo hacer que el trigger no se ejecute cuando se modifica por el m.s.
?

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
30/11/2008 - 15:36 | Informe spam
Gilbert, a ver, creo que no estas comprendiendo algo, si el trigger es for
create siempre que haya un create lo ejecutara! y eso es correcto. No
siempre el SSMS borra y crea una nueva tabla, de ser asi esta perfecto que
lo audites ya que eso es lo que has indicado. Ahora bien, modificar tablas
del SSMS no me es de mucho agrado, si la tabla es grande y se crea la temp y
se copian los datos podes terminar en un terrible problema de loqueo y q
nadie pueda usar la aplicacion.

En otras palabras tu trigger estar funcionando perfectamente, de ultima si
queres no audidar los create del ssms pone dentro del trigger una logica que
si la app_name() es igual a esa aplicacion no lo audite, de hecho hasta
podrias poner mas logica en ese trigger y que si el q modifica es un SA no
audite.

Pero es todo programacion del trigger, en si ahora te esta funcionando
perfecto :)


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Gilbert" escribió en el mensaje de
noticias:
Hice un trigger DDL solo para CREATE_TABLE para llevar un log de las
tablas que se crean.
Quiero que no ejecute cuando modifico la estructura de una tabla. Si uso
el management studio para modificar la estructura veo que como quiera se
ejecuta el trigger ya que lo que hace el m.s. es crear una tabla temporal
para luego borrar la original y renombrar la temporal.
Como puedo hacer que el trigger no se ejecute cuando se modifica por el
m.s. ?

Respuesta Responder a este mensaje
#2 Gilbert
30/11/2008 - 19:08 | Informe spam
Gracias, seguire probando con lo de app_name.


"Maxi Accotto" escribió en el mensaje
news:
Gilbert, a ver, creo que no estas comprendiendo algo, si el trigger es for
create siempre que haya un create lo ejecutara! y eso es correcto. No
siempre el SSMS borra y crea una nueva tabla, de ser asi esta perfecto que
lo audites ya que eso es lo que has indicado. Ahora bien, modificar tablas
del SSMS no me es de mucho agrado, si la tabla es grande y se crea la temp
y se copian los datos podes terminar en un terrible problema de loqueo y q
nadie pueda usar la aplicacion.

En otras palabras tu trigger estar funcionando perfectamente, de ultima si
queres no audidar los create del ssms pone dentro del trigger una logica
que si la app_name() es igual a esa aplicacion no lo audite, de hecho
hasta podrias poner mas logica en ese trigger y que si el q modifica es un
SA no audite.

Pero es todo programacion del trigger, en si ahora te esta funcionando
perfecto :)


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Gilbert" escribió en el mensaje de
noticias:
Hice un trigger DDL solo para CREATE_TABLE para llevar un log de las
tablas que se crean.
Quiero que no ejecute cuando modifico la estructura de una tabla. Si uso
el management studio para modificar la estructura veo que como quiera se
ejecuta el trigger ya que lo que hace el m.s. es crear una tabla
temporal para luego borrar la original y renombrar la temporal.
Como puedo hacer que el trigger no se ejecute cuando se modifica por el
m.s. ?

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida