Hola Jesus

Este ejemplo lo arme para un amigo hace poco, es facil de ver como funciona,
seguro podrás adaptarlo a tu necesidad.

Tabla para el ejemplo
===============

CREATE TABLE [dbo].[prueba] (

            [clave] [int] NULL ,

            [valor1] [int] NULL ,

            [valor2] [int] NULL

) ON [PRIMARY]


 Trigger
======
( Fijate que se usa una tabla especial, inserted )


CREATE TRIGGER [CalculoPablo] ON [dbo].[prueba]
FOR INSERT, UPDATE
AS
declare @calculo int
declare @clave int
If UPDATE(Valor2) OR UPDATE(valor1)
BEGIN
 select @clave=clave,@calculo=valor1*3 from inserted
 update  [dbo].[prueba]  set valo...@calculo where cla...@clave
END

Prueba
=====

INSERT INTO prueba (clave, valor1, valor2) VALUES ( 1, 2, 3 )
INSERT INTO prueba (clave, valor1, valor2) VALUES ( 2, 5, 8 )
INSERT INTO prueba (clave, valor1, valor2) VALUES ( 3, 10, 9 )

select * from prueba

clave valor1 valor2
1 2 6
2 5 15
3 10 30

(3 filas afectadas)


El 22 de julio de 2009 21:17, Omar Bellio <[email protected]>escribió:

>  Y no te conviene hacer una validación antes de insertar o modificar, en
> la "capa/lo que sea" de reglas de negocio?
>
> ----- Original Message -----
> *From:* Jesús dos Santos <[email protected]>
> *To:* Ciudad omarbellio <[email protected]>
> *Sent:* Monday, July 20, 2009 4:42 PM
> *Subject:* [dbms] Ayuda con trigger
>
>              Lista, buenas tardes, solicito vuestra ayuda por lo
> siguiente: estoy tratando de armar un trigger para cambiar datos cuando se
> inserte o actualice un registro. La idea es que : si el registro es del tipo
> 3 o 4, el valor de la hora sea 0. es para que no ingresen valor de hora en
> los registros tipo 3 y 4.
>
> Muchas gracias desde ya.
>
>
>
>


-- 
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional

Responder a