problemas con inserción
Publicado por eljhonb (124 intervenciones) el 31/05/2007 22:42:10
Buenas,
quisiera saber si es posible que al hacer una inserción masiva de datos, no se saque un error al encontrar problemas con un registro, que por el contrario lo evite y siga con la inserción de los demás.
Me hago explicar:
Quiero correr este sql:
insert into TB_PILA_Detalle_Novedad(Nro_Planilla, Id_Aportante, Id_Empleado, Periodo_Pago, Tipo_Novedad, Clasificado, Fecha1, Fecha2, Tipo_Afiliacion, Act_Salario, Informa_Empleado)
Select Nro_Planilla, Id_Aportante,Id_Empleado, Periodo_Pago, 3,1,
CASE WHEN Dias_Cotizados between 1 and DAY(Dateadd(Month,1,Periodo_Pago+'01')-1)
THEN dateadd(dd,Dias_Cotizados-1, Periodo_Pago+'01')
WHEN Dias_Cotizados > DAY(Dateadd(Month,1,Periodo_Pago+'01')-1)
THEN Dateadd(Month,1,Periodo_Pago+'01')-1
END,
dateadd(month,1,Periodo_Pago+'01')-1, --Último día del mes
1, --Tipo_Afiliacion
0,
0
from retirados
where Estado = 1 AND Dias_cotizados > 0 AND Suspension='x'
AND datediff(mm,Fecha_Retiro, convert(datetime,Periodo_Pago+'01')) > 0
Lo que quiero hacer es que si en algún momento encuentra un problema al tratar de insertar un registro, no termine el proceso sino que continue con la inserción de los demás registros y el registro errado pueda actualizarse con un valor que me indique que no se pudo insertar.
Es posible hacer esto? cómo?
quisiera saber si es posible que al hacer una inserción masiva de datos, no se saque un error al encontrar problemas con un registro, que por el contrario lo evite y siga con la inserción de los demás.
Me hago explicar:
Quiero correr este sql:
insert into TB_PILA_Detalle_Novedad(Nro_Planilla, Id_Aportante, Id_Empleado, Periodo_Pago, Tipo_Novedad, Clasificado, Fecha1, Fecha2, Tipo_Afiliacion, Act_Salario, Informa_Empleado)
Select Nro_Planilla, Id_Aportante,Id_Empleado, Periodo_Pago, 3,1,
CASE WHEN Dias_Cotizados between 1 and DAY(Dateadd(Month,1,Periodo_Pago+'01')-1)
THEN dateadd(dd,Dias_Cotizados-1, Periodo_Pago+'01')
WHEN Dias_Cotizados > DAY(Dateadd(Month,1,Periodo_Pago+'01')-1)
THEN Dateadd(Month,1,Periodo_Pago+'01')-1
END,
dateadd(month,1,Periodo_Pago+'01')-1, --Último día del mes
1, --Tipo_Afiliacion
0,
0
from retirados
where Estado = 1 AND Dias_cotizados > 0 AND Suspension='x'
AND datediff(mm,Fecha_Retiro, convert(datetime,Periodo_Pago+'01')) > 0
Lo que quiero hacer es que si en algún momento encuentra un problema al tratar de insertar un registro, no termine el proceso sino que continue con la inserción de los demás registros y el registro errado pueda actualizarse con un valor que me indique que no se pudo insertar.
Es posible hacer esto? cómo?
Valora esta pregunta


0