18/04/2005, 15:10
|
| Colaborador | | Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses Puntos: 25 | |
Via MP me dices que tienes 2 campos, no 1. Este es el código que uso en uno de mis triggers:
Código:
CREATE TRIGGER TR_tblDiasNoTrabajadosXCateg_I ON [dbo].[tblDiasNoTrabajadosXCateg]
INSTEAD OF INSERT
AS
IF EXISTS( --Si entra en conflicto con otro evento
SELECT * FROM Inserted I
INNER JOIN dbo.tblDiasNoTrabajadosXCateg DNT
ON DNT.id_categ = I.id_categ
AND DNT.id_centro_costo = I.id_centro_costo
WHERE ( I.fecha_inicio BETWEEN DNT.fecha_inicio AND DNT.fecha_fin
OR I.fecha_fin BETWEEN DNT.fecha_inicio AND DNT.fecha_fin )
OR ( DNT.fecha_inicio BETWEEN I.fecha_inicio AND I.fecha_fin
OR DNT.fecha_fin BETWEEN I.fecha_inicio AND I.fecha_fin )
)
BEGIN
RAISERROR('WARNING: Las fechas entran en conflicto con otro evento previo.', 16,1)
ROLLBACK TRANSACTION
END
ELSE
BEGIN
IF EXISTS(SELECT * FROM Inserted WHERE fecha_inicio > fecha_fin)
BEGIN
RAISERROR('WARNING: La Fecha de Inicio no puede ser mayor a la Fecha de Fin.', 16,1)
ROLLBACK TRANSACTION
END
ELSE
BEGIN
INSERT INTO dbo.tblDiasNoTrabajadosXCateg
SELECT id_categ,
id_centro_costo,
Convert(NVARCHAR, Year(fecha_inicio)) + '-' + Convert(NVARCHAR, Month(fecha_inicio)) + '-' + Convert(NVARCHAR, Day(fecha_inicio)),
Convert(NVARCHAR, Year(fecha_fin)) + '-' + Convert(NVARCHAR, Month(fecha_fin)) + '-' + Convert(NVARCHAR, Day(fecha_fin)) + ' ' + '23:59',
motivo
FROM Inserted
END
END
__________________ "El hombre, en su orgullo, creó a Dios a su imagen y semejanza."Friedrich Nietzsche |