Cuando se recomiendan los triggers ?

13/10/2004 - 01:26 por Berta Gomez | Informe spam
en cuales usos practicos y tipicos es que se recomienda el uso de triggers
? Basandose en la experiencia, por supuesto, no tanto en la teoria de los
libros.

Berta Gomez

Preguntas similare

Leer las respuestas

#1 Isaias
13/10/2004 - 01:53 | Informe spam
Hola Berta

Bueno, pues cuando quieras guardar en una tabla (auditoria), quien hizo el
insert, delete o update.

Cuando quieras guardar en otra tabla, el registro modificado, borrado.

Cuando quieras verificar, antes de hacer algo con los registros, que cumplan
alguna condicion.

Hay muchos mas...
Respuesta Responder a este mensaje
#2 Javier Loria
13/10/2004 - 03:08 | Informe spam
Hola:
Agrego a la opinion de Isaias que comparto
Los triggers son muy importantes cuando das acceso directo a las tablas
a los usuarios. Sirven para un sinnumero de situaciones. Por otro lado si
preferieres usar procedimientos almacenados para hacer Insert/Delete/Update
de las tablas, probablemente es mejor hacer la operacion en el Procedimiento
excepto tal vez para auditorias.
Desde el punto de vista de diseno debes tomar una desicion, quiero usar
Procedimientos Almacenados para las operaciones mencionadas o prefiero usar
Triggers?
Una nota, adicional si usas triggers debes ser muy eficiente en el
codigo y no hagas "demasiadas" locuras que maten tu aplicacion.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Isaias" wrote in message
news:
Hola Berta

Bueno, pues cuando quieras guardar en una tabla (auditoria), quien hizo el
insert, delete o update.

Cuando quieras guardar en otra tabla, el registro modificado, borrado.

Cuando quieras verificar, antes de hacer algo con los registros, que


cumplan
alguna condicion.

Hay muchos mas...
Respuesta Responder a este mensaje
#3 Berta Gomez
13/10/2004 - 18:42 | Informe spam
De nuevo el dilema: "Por donde me voy?" :)

Agrego a la opinion de Isaias que comparto
Los triggers son muy importantes cuando das acceso directo a las


tablas
a los usuarios. Sirven para un sinnumero de situaciones. Por otro lado si
preferieres usar procedimientos almacenados para hacer


Insert/Delete/Update
de las tablas, probablemente es mejor hacer la operacion en el


Procedimiento
excepto tal vez para auditorias.




Que beneficio me da usar procedimientos almacenados que un trigger ?


Desde el punto de vista de diseno debes tomar una desicion, quiero


usar
Procedimientos Almacenados para las operaciones mencionadas o prefiero


usar
Triggers?



En que me baso para decidirme ? O es simplemente arbitrario ?


Una nota, adicional si usas triggers debes ser muy eficiente en el
codigo y no hagas "demasiadas" locuras que maten tu aplicacion.
Saludos,




Y en los SP no seria igual ? La verdad que estoy confundida. Si yo
quiero que cuando se haga un insert a una tabla de cheques, me disminuya el
balance del suplidor, no seria adecuado poner esto ultimo en el trigger de
la tabla y luego en mi aplicacion solo preocuparme por enviar el INSERT. ?


Cuando es que se recomienda un SP en vez de un trigger, entonces ?
Respuesta Responder a este mensaje
#4 Javier Loria
13/10/2004 - 21:09 | Informe spam
Hola:
Desde el punto de vista de seguridad, rendimiento y facilidad de
mantenimiento de codigo, los procedimientos almacenados son la primera
opcion. La desventaja que tienen es que hay que escribir codigo (mas lentos
de desarrollar) y te "amarran" a la BD, particularmente si no te cuidas de
usar SQL standard.
La alternativa es usar acceso directo a las tabla con el codigo del
Trigger, que tiene la ventaja que suele requerir menos codigo (mas rapido de
desarrollar) y mas bien el codigo de SQL queda "escondido".
Revise posteos viejos pare ver un poco la opinion de los gurus de este
foro y me parece que Maxi, Miguel, Lilliana, Ulises y Adrian usan pocos
triggers y usan mas procedimientos. Por otro lado me da la impresion que
Gustavo y otros son mas abiertos a los triggers.
En cuanto al ejemplo: Si tienes un procedimiento que hace inserta un
cheque, para que quieres un trigger? No seria mas facil tener todo el codigo
junto (funcionalmente agrupado) y de mas facil mantenimiento. Si decides no
tener un Procedimiento de Cheques, tiene mucho sentido hacer un Trigger.
Me gustaria decirte: usa solo procedimientos y no uses triggers (seria
una respuesta mas facil) pero no seria honesto, con alguna frecuencia uso
triggers y no los cambiaria.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Berta Gomez" wrote in message
news:
De nuevo el dilema: "Por donde me voy?" :)

> Agrego a la opinion de Isaias que comparto
> Los triggers son muy importantes cuando das acceso directo a las
tablas
> a los usuarios. Sirven para un sinnumero de situaciones. Por otro lado


si
> preferieres usar procedimientos almacenados para hacer
Insert/Delete/Update
> de las tablas, probablemente es mejor hacer la operacion en el
Procedimiento
> excepto tal vez para auditorias.


Que beneficio me da usar procedimientos almacenados que un trigger ?


> Desde el punto de vista de diseno debes tomar una desicion, quiero
usar
> Procedimientos Almacenados para las operaciones mencionadas o prefiero
usar
> Triggers?

En que me baso para decidirme ? O es simplemente arbitrario ?

>
> Una nota, adicional si usas triggers debes ser muy eficiente en el
> codigo y no hagas "demasiadas" locuras que maten tu aplicacion.
> Saludos,
>

Y en los SP no seria igual ? La verdad que estoy confundida. Si yo
quiero que cuando se haga un insert a una tabla de cheques, me disminuya


el
balance del suplidor, no seria adecuado poner esto ultimo en el trigger de
la tabla y luego en mi aplicacion solo preocuparme por enviar el INSERT. ?


Cuando es que se recomienda un SP en vez de un trigger, entonces ?


Respuesta Responder a este mensaje
#5 Maxi
13/10/2004 - 21:32 | Informe spam
Hola, mira los triggers son una excelente herramienta pero lo ideal no es
abusar de ella.

Yo te cuento como trabajo:

1) Tengo todo armado en SP (esto me hace un poco dependiente del motor de
BDD pero los beneficios obtenidos son muy altos, por lo cual lo hago :-).
Ademas aca tengo un concepto muy particular quizas, si desarrollo para
Sql-Server quiero que funcione al 1000%, si lo hago para Oracle lo mismo!! y
en los años que me dedico a esto de la informatica me di cuenta que las
cosas genericas que dicen funcionar en todos lados, a la larga son un
problema.. pero bue es tema para discutir en otro momento ;-)

2) Luego si necesito por ej control de auditoria aplico los TR.

Hay casos (por ejemplo tablas que son para sistemas heterogenios) aplico
triggers para cuando se haga las migraciones (por ej DTS o algun proceso
externo) se apliquen algunas reglas que quiera.

O sea, en algunos casos tengo la funcionalidad duplicada, por un lado el
Trigger y ademas el SP, claro esta, que el trigger detecta si fue lanzado o
no por el SP (podrias revisar este link
http://www.configuracionesintegrale...articulo%4)

Para terminar:

Son buenos o malos los Triggers? no son ni una cosa ni la otra!! son una
herramienta que en muchos casos es la unica forma de resolver algun problema
(por ej, en un ERP que tenemos aca que es de terceros, hemos realizado con
Triggers muchas politicas de negocios, de otra forma habria sido imposible
hacer semejante tarea)

Otro caso donde se usan (porque no hay por el momento otra solucion) es
cuando necesitas tener Tablas relacionadas pero que estan en distintas BDD
(tambien podrian estar en otro motor de BDD que no fuere SQL), recuerdo que
en un momento tuve que hacer que un sistema en SQL (una tabla) tenga una
relacion con una tabla en otra BDD (en este caso creo que era Centura) y con
un trigger pudimos lograr esta integridad :-)

Como ves, no son malos, pero yo trato de usarlos para lo justo y necesario
:-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Berta Gomez" escribió en el mensaje
news:
en cuales usos practicos y tipicos es que se recomienda el uso de triggers
? Basandose en la experiencia, por supuesto, no tanto en la teoria de los
libros.

Berta Gomez







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida