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.

Preguntas similare

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.



Respuesta Responder a este mensaje
#2 MAXI
23/02/2005 - 00:19 | Informe spam
Hola, un solo comentario que no te ha comentado Ale:

Este tipo de cosas en los triggers no es muy bueno porque generan mucho
mantenimiento, lo ideal seria que este tipo de reglas las implementes en el
Store de Insert de tu aplicacion, de esta forma seria mas transparente :-D



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"Omar Flores" escribió en el mensaje
news:
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.

Respuesta Responder a este mensaje
#3 Eladio Rincón
23/02/2005 - 14:20 | Informe spam
depende del escenario...
mantenimiento al fin y al cabo será documentación apropiada de la base de
datos por lo que no le vería problemas...
por transparecia supongo que te refieres a que sólo tienes un punto de
entrada a inserciones en la tabla, pero imaginate una migración de datos con
insert into select from tabla; este sería un caso particular que el Trigger
tendría resuelto el problema; en definitiva depende del escenario ;-)

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"MAXI" wrote in message
news:
Hola, un solo comentario que no te ha comentado Ale:

Este tipo de cosas en los triggers no es muy bueno porque generan mucho
mantenimiento, lo ideal seria que este tipo de reglas las implementes en


el
Store de Insert de tu aplicacion, de esta forma seria mas transparente :-D



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"Omar Flores" escribió en el mensaje
news:
> 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.
>


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