Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/04/2005, 15:10
Avatar de Mithrandir
Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
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