Triggers

29/05/2006 - 15:11 por María Eugenia Ryan | Informe spam
Hola a todos, estoy sufriendo con un triggers, lo que necesito es que cuando
el ususario inserte o modifique un campo en la tabla, automáticamente asigne
al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia de HORAS_EXTRAS.Horas2 y
HORAS_EXTRAS.Horas1.

Pero no puedo hacerlo y no encuentro buena información acerca de los
triggers, si me pueden dar alguna ayuda y además les agradecería que me
indiquen dónde puedo buscar información y ejemplos, gracias.
Este es el código (seguro me falta conocimiento conceptual):
ALTER TRIGGER HORAS_EXTRAS_Trigger1

ON dbo.HORAS_EXTRAS

FOR INSERT, UPDATE

AS

Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras = HORAS_EXTRAS.Horas2 -
HORAS_EXTRAS.Horas1








María Eugenia Ryan

Preguntas similare

Leer las respuestas

#1 Eduardo Castro
29/05/2006 - 16:33 | Informe spam
En los triggers tienes que hacer referencia a una variable "temporal" que se
llama Inserted y Updated, estos contiene los registros que fueron
actualizados o insertados, en tu caso modifica tu sql para que trabaje sobre
esas tablas "inserted y updated"

Eduardo Castro
Microsoft MVP
MCSE 2003+Security, MCDBA, MCSD .NET, CCNA

"María Eugenia Ryan" wrote in message
news:
Hola a todos, estoy sufriendo con un triggers, lo que necesito es que
cuando el ususario inserte o modifique un campo en la tabla,
automáticamente asigne al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia
de HORAS_EXTRAS.Horas2 y HORAS_EXTRAS.Horas1.

Pero no puedo hacerlo y no encuentro buena información acerca de los
triggers, si me pueden dar alguna ayuda y además les agradecería que me
indiquen dónde puedo buscar información y ejemplos, gracias.
Este es el código (seguro me falta conocimiento conceptual):
ALTER TRIGGER HORAS_EXTRAS_Trigger1

ON dbo.HORAS_EXTRAS

FOR INSERT, UPDATE

AS

Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras =
HORAS_EXTRAS.Horas2 - HORAS_EXTRAS.Horas1








María Eugenia Ryan

Respuesta Responder a este mensaje
#2 BitOne®
29/05/2006 - 16:47 | Informe spam
Necesitas hacer referencia a la tabla logicas conceptuales del sistema
Inserted, deleted las cuales tienen una structura similar a la cual
corresponde el trigger.

entonces esto determinado seria algo parecido a esto.

CREATE TRIGGER horas_extras_trigger1
on horas_extras
for insert, update
as
update horas_extras
set horas_extras.cant_hs_extras = inserted.horas2 - inserted.horas1


Saludos,

BitOne®


www.yocsql.com



"María Eugenia Ryan" wrote in message
news:
Hola a todos, estoy sufriendo con un triggers, lo que necesito es que


cuando
el ususario inserte o modifique un campo en la tabla, automáticamente


asigne
al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia de HORAS_EXTRAS.Horas2


y
HORAS_EXTRAS.Horas1.

Pero no puedo hacerlo y no encuentro buena información acerca de los
triggers, si me pueden dar alguna ayuda y además les agradecería que me
indiquen dónde puedo buscar información y ejemplos, gracias.
Este es el código (seguro me falta conocimiento conceptual):
ALTER TRIGGER HORAS_EXTRAS_Trigger1

ON dbo.HORAS_EXTRAS

FOR INSERT, UPDATE

AS

Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras HORAS_EXTRAS.Horas2 -
HORAS_EXTRAS.Horas1








María Eugenia Ryan


Respuesta Responder a este mensaje
#3 BitOne®
29/05/2006 - 16:59 | Informe spam
Ahora, una pregunta, si eso es lo que necesitas por que hacerlo en un
trigger,
puedes usar una columna la cual tenga como valor la diferencia de estos
campos,
o contenga una formula con esta diferencia.?

Saludos,

BitOne®


www.yocsql.com


"BitOne®" wrote in message
news:eP#
Necesitas hacer referencia a la tabla logicas conceptuales del sistema
Inserted, deleted las cuales tienen una structura similar a la cual
corresponde el trigger.

entonces esto determinado seria algo parecido a esto.

CREATE TRIGGER horas_extras_trigger1
on horas_extras
for insert, update
as
update horas_extras
set horas_extras.cant_hs_extras = inserted.horas2 - inserted.horas1


Saludos,

BitOne®


www.yocsql.com



"María Eugenia Ryan" wrote in message
news:
> Hola a todos, estoy sufriendo con un triggers, lo que necesito es que
cuando
> el ususario inserte o modifique un campo en la tabla, automáticamente
asigne
> al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia de


HORAS_EXTRAS.Horas2
y
> HORAS_EXTRAS.Horas1.
>
> Pero no puedo hacerlo y no encuentro buena información acerca de los
> triggers, si me pueden dar alguna ayuda y además les agradecería que me
> indiquen dónde puedo buscar información y ejemplos, gracias.
> Este es el código (seguro me falta conocimiento conceptual):
> ALTER TRIGGER HORAS_EXTRAS_Trigger1
>
> ON dbo.HORAS_EXTRAS
>
> FOR INSERT, UPDATE
>
> AS
>
> Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras > HORAS_EXTRAS.Horas2 -
> HORAS_EXTRAS.Horas1
>
>
>
>
>
>
>
>
> María Eugenia Ryan
>
>


Respuesta Responder a este mensaje
#4 María Eugenia Ryan
29/05/2006 - 17:08 | Informe spam
Muchas gracias ahora voy a probar si logro hacer funcionar mi trigger.

BitOne®: ahora lo tengo de la forma que vos díces pero ocurre que tengo que
hacer muchos cálculos con esa diferencia y se me empezó a complicar el tema,
por eso decidí guardarlo como campo de la tabla (aunque a mi no me gusta
tampoco la idea). Es más si no fueran campos tipo datte ni se me ocurriría
guardarlo. Por eso quiero que frente a cualquier modificación en un registro
me calcule la resta.

María Eugenia


"BitOne®" escribió en el mensaje
news:%
Ahora, una pregunta, si eso es lo que necesitas por que hacerlo en un
trigger,
puedes usar una columna la cual tenga como valor la diferencia de estos
campos,
o contenga una formula con esta diferencia.?

Saludos,

BitOne®


www.yocsql.com


"BitOne®" wrote in message
news:eP#
Necesitas hacer referencia a la tabla logicas conceptuales del sistema
Inserted, deleted las cuales tienen una structura similar a la cual
corresponde el trigger.

entonces esto determinado seria algo parecido a esto.

CREATE TRIGGER horas_extras_trigger1
on horas_extras
for insert, update
as
update horas_extras
set horas_extras.cant_hs_extras = inserted.horas2 -
inserted.horas1


Saludos,

BitOne®


www.yocsql.com



"María Eugenia Ryan" wrote in message
news:
> Hola a todos, estoy sufriendo con un triggers, lo que necesito es que
cuando
> el ususario inserte o modifique un campo en la tabla, automáticamente
asigne
> al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia de


HORAS_EXTRAS.Horas2
y
> HORAS_EXTRAS.Horas1.
>
> Pero no puedo hacerlo y no encuentro buena información acerca de los
> triggers, si me pueden dar alguna ayuda y además les agradecería que me
> indiquen dónde puedo buscar información y ejemplos, gracias.
> Este es el código (seguro me falta conocimiento conceptual):
> ALTER TRIGGER HORAS_EXTRAS_Trigger1
>
> ON dbo.HORAS_EXTRAS
>
> FOR INSERT, UPDATE
>
> AS
>
> Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras >> HORAS_EXTRAS.Horas2 -
> HORAS_EXTRAS.Horas1
>
>
>
>
>
>
>
>
> María Eugenia Ryan
>
>






Respuesta Responder a este mensaje
#5 BitOne®
29/05/2006 - 18:18 | Informe spam
Bueno bajo este esquema creo que el trigger quedaria recursivo, de todas
maneras ejecutare una prueba, para
verificar esto.

BitOne®


www.yocsql.com

"María Eugenia Ryan" wrote in message
news:
Muchas gracias ahora voy a probar si logro hacer funcionar mi trigger.

BitOne®: ahora lo tengo de la forma que vos díces pero ocurre que tengo


que
hacer muchos cálculos con esa diferencia y se me empezó a complicar el


tema,
por eso decidí guardarlo como campo de la tabla (aunque a mi no me gusta
tampoco la idea). Es más si no fueran campos tipo datte ni se me ocurriría
guardarlo. Por eso quiero que frente a cualquier modificación en un


registro
me calcule la resta.

María Eugenia


"BitOne®" escribió en el mensaje
news:%
> Ahora, una pregunta, si eso es lo que necesitas por que hacerlo en un
> trigger,
> puedes usar una columna la cual tenga como valor la diferencia de estos
> campos,
> o contenga una formula con esta diferencia.?
>
> Saludos,
>
> BitOne®
>
>
> www.yocsql.com
>
>
> "BitOne®" wrote in message
> news:eP#
>> Necesitas hacer referencia a la tabla logicas conceptuales del sistema
>> Inserted, deleted las cuales tienen una structura similar a la cual
>> corresponde el trigger.
>>
>> entonces esto determinado seria algo parecido a esto.
>>
>> CREATE TRIGGER horas_extras_trigger1
>> on horas_extras
>> for insert, update
>> as
>> update horas_extras
>> set horas_extras.cant_hs_extras = inserted.horas2 -
>> inserted.horas1
>>
>>
>> Saludos,
>>
>> BitOne®
>>
>>
>> www.yocsql.com
>>
>>
>>
>> "María Eugenia Ryan" wrote in message
>> news:
>> > Hola a todos, estoy sufriendo con un triggers, lo que necesito es que
>> cuando
>> > el ususario inserte o modifique un campo en la tabla, automáticamente
>> asigne
>> > al campo HORAS_EXTRAS.Cant_Hs_Extras la diferencia de
> HORAS_EXTRAS.Horas2
>> y
>> > HORAS_EXTRAS.Horas1.
>> >
>> > Pero no puedo hacerlo y no encuentro buena información acerca de los
>> > triggers, si me pueden dar alguna ayuda y además les agradecería que


me
>> > indiquen dónde puedo buscar información y ejemplos, gracias.
>> > Este es el código (seguro me falta conocimiento conceptual):
>> > ALTER TRIGGER HORAS_EXTRAS_Trigger1
>> >
>> > ON dbo.HORAS_EXTRAS
>> >
>> > FOR INSERT, UPDATE
>> >
>> > AS
>> >
>> > Update HORAS_EXTRAS set HORAS_EXTRAS.Cant_Hs_Extras > >> HORAS_EXTRAS.Horas2 -
>> > HORAS_EXTRAS.Horas1
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > María Eugenia Ryan
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida