Constrains

06/12/2006 - 14:02 por Julio Ramos | Informe spam
Hola Grupo

Tengo un DTS Corriendo, pero necesito saber como puedo hacer para que cuando
se valla a insertar verifique que no existe en la tabla.

Me explico, resumiendo esto necesito hacer un select top 1 de la mayor de la
fecha que para todos los usuarios seria la misma y compararlo con la fecha
del archivo plano que corre el DTS, si la fecha del archivo es mayor que
corra entonces el DTS.


Ejemplo


Tabla

Codigo Nombre fecha
1 Juan 01/01/06
2 Miguel 01/01/06
1 Juan 01/02/06
2 Miguel 01/02/06

Archivo plano
Codigo Nombre fecha
1 Juan 01/03/06
2 Miguel 01/03/06

Nota
Siempre se realiza el insert para todos los usuarios con la lista fecha.

Lo que busco es que si lo corren estando ya la información en la base de
datos no lo deje correr



Estaba haciendo algo asi pero no me funciona

Alter Trigger Verificar_Nomina

on Volante_Pago

INSTEAD OF insert

as

IF

(Select top 1 Volante_pago.Fecha from Volante_pago) <

(Select top 1 inserted.Fecha from inserted)

BEGIN

RAISERROR ('Ya este en la base de datos.', 16, 1)

ROLLBACK TRANSACTION

Select top 1 Volante_pago.Fecha from Volante_pago

Select top 1 inserted.Fecha from inserted

END
 

Leer las respuestas

#1 Julio Ramos
06/12/2006 - 15:12 | Informe spam
Gracias Alejandro, voy a ferificar con essa opcion
"Alejandro Mesa" wrote in message
news:
Julio,

Una posible solucion es poner la data del archivo en una segunda tabla y
procesar las filas desde T-SQL.


AMB

"Julio Ramos" wrote:

Hola Grupo

Tengo un DTS Corriendo, pero necesito saber como puedo hacer para que
cuando
se valla a insertar verifique que no existe en la tabla.

Me explico, resumiendo esto necesito hacer un select top 1 de la mayor de
la
fecha que para todos los usuarios seria la misma y compararlo con la
fecha
del archivo plano que corre el DTS, si la fecha del archivo es mayor que
corra entonces el DTS.


Ejemplo


Tabla

Codigo Nombre fecha
1 Juan 01/01/06
2 Miguel 01/01/06
1 Juan 01/02/06
2 Miguel 01/02/06

Archivo plano
Codigo Nombre fecha
1 Juan 01/03/06
2 Miguel 01/03/06

Nota
Siempre se realiza el insert para todos los usuarios con la lista fecha.

Lo que busco es que si lo corren estando ya la información en la base de
datos no lo deje correr



Estaba haciendo algo asi pero no me funciona

Alter Trigger Verificar_Nomina

on Volante_Pago

INSTEAD OF insert

as

IF

(Select top 1 Volante_pago.Fecha from Volante_pago) <

(Select top 1 inserted.Fecha from inserted)

BEGIN

RAISERROR ('Ya este en la base de datos.', 16, 1)

ROLLBACK TRANSACTION

Select top 1 Volante_pago.Fecha from Volante_pago

Select top 1 inserted.Fecha from inserted

END



Preguntas similares