Trigger para incrementar un campo de Fecha...

23/06/2006 - 13:49 por Ander Fdez. | Informe spam
Hola grupo. Estoy intentando hacer un trigger el cual, al hacer un insert o
update en una tabla, me compruebe si el campo de una columna fecha está
entre 2 límites (es decir, entre el 01/08/06 y el 31/08/06) y
automáticamente me incremente la fecha en 30 días.

Si alguien me pudiera echar una mano. Yo voy haciendo lo siguiente (no soy
un experto ni mucho menos):

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


ALTER TRIGGER VTOS
ON dbo.F_DOCREGL
AFTER INSERT,UPDATE

AS

/** Declaración de Variables y Consultas **/

Declare @DocsAgosto as datetime
Declare @FechaIntro datetime
Declare @Saltar int

/** Ejemplo de como sumar días con Transact SQL **/

SET NOCOUNT ON

Set @DocsAgosto = (SELECT Dr_Date as Fecha
FROM Inserted
WHERE(DR_Date BETWEEN CONVERT(DATETIME, '2006-08-01
00:00:00', 102) AND CONVERT(DATETIME, '2006-08-31 00:00:00', 102)))

SET @FechaIntro = @DocsAgosto
SET @Saltar = 30

SET NOCOUNT OFF

SELECT @FechaIntro AS 'Start Date',
@FechaIntro + @Saltar AS 'Add Date'

Gracias por la ayuda y un saludo.
 

Leer las respuestas

#1 Alejandro Mesa
23/06/2006 - 15:54 | Informe spam
Trata:

ALTER TRIGGER VTOS
ON dbo.F_DOCREGL
AFTER INSERT,UPDATE
AS
set nocount on

update dbo.F_DOCREGL
set Dr_Date = dateadd(day, 30, Dr_Date)
where exists (select * from inserted as i where i.pk = dbo.F_DOCREGL.pk)
and Dr_Date >= '20060801' and Dr_Date < '20060901'
go


AMB

"Ander Fdez." wrote:

Hola grupo. Estoy intentando hacer un trigger el cual, al hacer un insert o
update en una tabla, me compruebe si el campo de una columna fecha está
entre 2 límites (es decir, entre el 01/08/06 y el 31/08/06) y
automáticamente me incremente la fecha en 30 días.

Si alguien me pudiera echar una mano. Yo voy haciendo lo siguiente (no soy
un experto ni mucho menos):

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


ALTER TRIGGER VTOS
ON dbo.F_DOCREGL
AFTER INSERT,UPDATE

AS

/** Declaración de Variables y Consultas **/

Declare @DocsAgosto as datetime
Declare @FechaIntro datetime
Declare @Saltar int

/** Ejemplo de como sumar días con Transact SQL **/

SET NOCOUNT ON

Set @DocsAgosto = (SELECT Dr_Date as Fecha
FROM Inserted
WHERE(DR_Date BETWEEN CONVERT(DATETIME, '2006-08-01
00:00:00', 102) AND CONVERT(DATETIME, '2006-08-31 00:00:00', 102)))

SET @FechaIntro = @DocsAgosto
SET @Saltar = 30

SET NOCOUNT OFF

SELECT @FechaIntro AS 'Start Date',
@FechaIntro + @Saltar AS 'Add Date'

Gracias por la ayuda y un saludo.



Preguntas similares