Triggers versus SP's

25/09/2006 - 18:25 por Tito | Informe spam
Hola quisiera su opinion sobre esto. Estamos haciendo un sistema con sql
server y hay mucha logica que podemos ponerla dentro de los SP's de cruds
sobre todo para Insert y para update pero tambien tenemos la opcion de
ponerlo en triggers. Un colega nos dice que es mejor en triggers porque eso
le da control a la misma base de datos como si fuera integridad declarativa.
Otro dice que aun asi es mejor meter todo en los SP y olvidarse de esos
triggers/

Me podrian dar su opinion basados en su experiencia ?

gracias por la ayuda

tito

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
25/09/2006 - 21:14 | Informe spam
Hola,

Ambas opciones tienen sus pros y sus contras, la principal ventaja que veo a
ponerlo en triggers, es que si se produce una inserción desde cualquier
sitio que no sea tu sp, al estar en el trigger se ejecutará esa parte del
código. Si está en un trigger se ejecutará de forma automática cada vez que
se producta un insert, update o delete en la tabla. Creo que tu debes
decidir que es lo que más te interesa en tu caso.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Tito" escribió en el mensaje
news:%
Hola quisiera su opinion sobre esto. Estamos haciendo un sistema con sql
server y hay mucha logica que podemos ponerla dentro de los SP's de cruds
sobre todo para Insert y para update pero tambien tenemos la opcion de
ponerlo en triggers. Un colega nos dice que es mejor en triggers porque
eso le da control a la misma base de datos como si fuera integridad
declarativa. Otro dice que aun asi es mejor meter todo en los SP y
olvidarse de esos triggers/

Me podrian dar su opinion basados en su experiencia ?

gracias por la ayuda

tito

Respuesta Responder a este mensaje
#2 Maxi
25/09/2006 - 22:40 | Informe spam
Hola, un solo detalle, cuando se hace un DTS por default no hara que se
ejecuten los triggers con lo cual tambien hay que tener un cuidado extra y
depender de una persona para que lo contemple


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Ambas opciones tienen sus pros y sus contras, la principal ventaja que veo
a ponerlo en triggers, es que si se produce una inserción desde cualquier
sitio que no sea tu sp, al estar en el trigger se ejecutará esa parte del
código. Si está en un trigger se ejecutará de forma automática cada vez
que se producta un insert, update o delete en la tabla. Creo que tu debes
decidir que es lo que más te interesa en tu caso.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Tito" escribió en el mensaje
news:%
Hola quisiera su opinion sobre esto. Estamos haciendo un sistema con sql
server y hay mucha logica que podemos ponerla dentro de los SP's de cruds
sobre todo para Insert y para update pero tambien tenemos la opcion de
ponerlo en triggers. Un colega nos dice que es mejor en triggers porque
eso le da control a la misma base de datos como si fuera integridad
declarativa. Otro dice que aun asi es mejor meter todo en los SP y
olvidarse de esos triggers/

Me podrian dar su opinion basados en su experiencia ?

gracias por la ayuda

tito





Respuesta Responder a este mensaje
#3 Carlos Sacristán
26/09/2006 - 08:27 | Informe spam
No me gustan los triggers porque dispersan la lógica. Yo prefiero
tenerlo todo en procedimientos almacenados y sé que es el único sitio donde
tendría que tocar si se modifica la lógica de los datos.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Tito" escribió en el mensaje
news:#
Hola quisiera su opinion sobre esto. Estamos haciendo un sistema con sql
server y hay mucha logica que podemos ponerla dentro de los SP's de cruds
sobre todo para Insert y para update pero tambien tenemos la opcion de
ponerlo en triggers. Un colega nos dice que es mejor en triggers porque


eso
le da control a la misma base de datos como si fuera integridad


declarativa.
Otro dice que aun asi es mejor meter todo en los SP y olvidarse de esos
triggers/

Me podrian dar su opinion basados en su experiencia ?

gracias por la ayuda

tito


Respuesta Responder a este mensaje
#4 Carlos
26/09/2006 - 12:28 | Informe spam
Para mi opinion en uso de cruds yo prefiero SP.
1) Desde la aplicacion, los cruds normalmente estan orientados a forms ABM's
por ende a procesar un registro por vez. Por el contrario, los triggers no
estan orientados a manejar un registro a la vez, sino a conjuntos. Por
tanto hay que programarlos considerando conjuntos (inserted, deleted). Un
problema tipico es cuando se inserta un registro y despues hay que correr un
proceso (un SP) que genera un conjunto para ser insertado en otra tabla.
Esto es un problema hacerlo en un trigger.
2) Si te borran los triggers por error tu aplicacion puede seguir
funcionando aparentemente sin problemas pero con resultados desastrosos como
me paso a mi una vez. La llamada a un SP borrado sin embargo se detecta
desde el intento y por tanto
3) Problema con DTS's (ya lo dicen arriba)

Donde me gustan los triggers:
1)Para auditoria (almacenar quien hizo cambios a registros)
2)Para algunos casos de mantener balances de campos calculados persistentes
(sobre todo cuando no tengo una vista indexada), siempre teniendo un sp
asociado para cuando haya que reconstruir esos balances.


Carlos



"Tito" escribió en el mensaje
news:%
Hola quisiera su opinion sobre esto. Estamos haciendo un sistema con sql
server y hay mucha logica que podemos ponerla dentro de los SP's de cruds
sobre todo para Insert y para update pero tambien tenemos la opcion de
ponerlo en triggers. Un colega nos dice que es mejor en triggers porque
eso le da control a la misma base de datos como si fuera integridad
declarativa. Otro dice que aun asi es mejor meter todo en los SP y
olvidarse de esos triggers/

Me podrian dar su opinion basados en su experiencia ?

gracias por la ayuda

tito

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