ayuda para crear un trigger

22/02/2005 - 18:18 por Omar Flores | Informe spam
Que tal grupo, necesito ayuda para crear el siguiente Trigger, explico lo
que quiero hacer.

Tengo una tabla con la siguiente estructura:
(
id_Entrada INT PRIMARY KEY
Elaboro VARCHAR(50) NOT NULL
Fecha_Entrada DATETIME DEFAULT GETDATE()
Status Varchar(5)
)

Necesito hacer que cada que se inserte un nuevo registro se compare la fecha
del campo Fecha_Entrada con el getdate() y si es mayor poner en el campo
Status "Baja" de lo contrario "Alta"

Gracias por su ayuda.
 

Leer las respuestas

#1 Alejandro Mesa
22/02/2005 - 18:37 | Informe spam
Omar,

Aqui tienes un ejemplo con INSTEAD OF y AFTER.

use northwind
go

create table t (
id_Entrada INT PRIMARY KEY,
Elaboro VARCHAR(50) NOT NULL,
Fecha_Entrada DATETIME DEFAULT GETDATE(),
Status Varchar(5)
)
go

create trigger tr_t_io_ins on t
instead of insert
as
set nocount on

insert into t (id_Entrada, Elaboro, Fecha_Entrada, Status)
select id_Entrada, Elaboro, Fecha_Entrada, case when Fecha_Entrada >
getdate() then 'Baja' else 'Alta' end
from inserted
go

insert into t (id_Entrada, Elaboro) values (1, 'a')
insert into t (id_Entrada, Elaboro, Fecha_Entrada) values (2, 'b',
'2005-02-22T13:10:05.000')
go

select * from t
go

drop trigger tr_t_io_ins
go

create trigger tr_t_ins on t
after insert
as
set nocount on

update
a
set
a.Status = case when a.Fecha_Entrada > getdate() then 'Baja' else 'Alta' end
from
t as a
inner join
inserted as i
on a.id_Entrada = i.id_Entrada
go

insert into t (id_Entrada, Elaboro) values (3, 'c')
insert into t (id_Entrada, Elaboro, Fecha_Entrada) values (4, 'd',
'2005-02-22T13:30:15.000')
go

select * from t
go

drop table t
go


AMB



"Omar Flores" wrote:

Que tal grupo, necesito ayuda para crear el siguiente Trigger, explico lo
que quiero hacer.

Tengo una tabla con la siguiente estructura:
(
id_Entrada INT PRIMARY KEY
Elaboro VARCHAR(50) NOT NULL
Fecha_Entrada DATETIME DEFAULT GETDATE()
Status Varchar(5)
)

Necesito hacer que cada que se inserte un nuevo registro se compare la fecha
del campo Fecha_Entrada con el getdate() y si es mayor poner en el campo
Status "Baja" de lo contrario "Alta"

Gracias por su ayuda.



Preguntas similares