Bases de Datos - Ayuda con TRIGGERS!!!

   
Vista:

Ayuda con TRIGGERS!!!

Publicado por dalss (1 intervención) el 11/06/2011 04:17:55
BUENO NECESITO AYUDA SOBRE ESTO DE LOS TRIGGERS Y NO SE COMO SE HACE POR FAVOR SI ALGUIEN ME DIERA LA SOLUCOIN (NO SERIA MUY BARSA PERO LA NECESITO! XD)
ESTO ES LO QUE DEBO HACER:

debe considerar un mínimo de 1 asociado a tabla que almacene los Totales Calculados por cada empleado.

o Al momento de Insertar los valores totales calculados de cada empleado,

este trigger deberá insertar en la tabla FUNCIONARIOS_PROCESADOS el run del empleado calculado y la glosa ‘Funcionario procesado’.

SOLO ME DIERON ESA INFORMAICON PARA HACERLO...
LO MAS SIMPLE POSIBLE SI SE PUEDE .
GRACIAS :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con TRIGGERS!!!

Publicado por JAV (2 intervenciones) el 11/06/2011 05:16:22
Hola

nunca estuve de acuerdo en resolver ejercicios completos, pero sí puedo ayudarte a entender de que se trata esto:

Un trigger es un un procedimiento almacenado (stored procedure) pero especial, dado que lo invoca el motor de base de datos tras el suceso de un evento de alteración de datos. Es decir, cuando alguien hace un update, un delete o incluso un insert es posibe indicarle a la mayoría de los motores que ejecuten una rutina determinada.

Por el tipo de evento que disparan (insert, update y delete) se puede descubrir que esos eventos se dan por tabla, es decir no se puede hacer una operación de esas sobre dos tablas a la vez, por ende un trigger tiene que ser necesariamente sobre una tabla. Y esto es así en la realidad :)

Bueno, entonces tenemos que un trigger es un procedimiento almacenado que se ejecuta sobre una tabla (o tras monitorear una tabla) cuando se alguien hace alguna operación de Alta, Baja o Modificación.

La sintaxis del stored procedure según el estándar es sencilla sabiendo esto:

CREATE TRIGGER <nombreDelTrigger> ON <tabla> FOR <evento> AS...

Donde <evento> es INSERT o UPDATE o DELETE.

Luego viene la programación como si de un stored procedure se tratara. Pero los trigger además de llamarse automáticamente tras un evento, tiene unas variables que están inicializadas, sin embargo los nombres de esas variables dependen muchas veces de los gustos de los fabricantes de bases de datos, pero generalmente son: inserted, deleted.

Esas variables adentro del stored procedure se puede usar como si fueran tablas; es decir que se puede hacer un SELECT * FROM inserted.

Lo que hay que tener en cuenta es que:

En caso de evento INSERT => sólo toma valores la variale inserted (porque no borramos nada)
En caso de evento UPDATE=> toman valor ambas variables, en deleted están los datos "viejos" o los que se pisan y en inserted los "nuevos" o los que van a quedar.
En caso de evento DELETE=> sólo adopta valores deleted que tiene la fila de datos a borrar.

Siempre hay que tener en cuenta además que en esas variables hay tantos registros como registros se vean afectados por la operación, es decir que si borramos 5 filas en deleted habrá 5 filas.

Bueno, no es el ejercicio pero espero haberte ayudado, pienso que los programadores tenemos que entender todo lo que hacemos, porque hoy es un simple ejercicio pero mañana será un programa con consecuencias nada agradables. :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con TRIGGERS!!!

Publicado por Leopoldo Taylhardat (183 intervenciones) el 02/07/2011 02:06:01
Saludos...
Busca en el foro "Sybase SQL Anywhere" En la pregunta 'Como realizar un trigger de Update' tienes todo... hasta un ejemplo de la auditoría..
espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar