Validar integridad referencial por código.

21/12/2009 - 09:54 por José Luis | Informe spam
Hola a todos,

tengo que hacer una carga masiva de datos a SQL Server 2005 para la cual
quisiera deshabilitar la integridad referencial, introducir los datos y
volver a habilitarla. esto lo he hecho a través de un alter table y check
constraints.

El problema es que ahora antes de finalizar la importación quisiera validar
la integridad referencial y en caso que hubiera datos que no cumplen las
reglas de la integridad poder volver atrás la transacción. Esto último no
se como se haría. Alguién me podría decir como puedo validar que la base de
datos cumple con las reglas de la integridad referencial?

Muchas gracias por anticipado.

Un saludo,
José Luis.
 

Leer las respuestas

#1 Alejandro Mesa
21/12/2009 - 15:49 | Informe spam
José Luis,

La forma mas sencilla seria probando existencia por cada restriccion de
clave foranea.

if exists (
select *
from T1
where not exists (select * from T2 where T2.pk = T1.fk)
)
print 'existen filas huerfanas en T1';
GO

Otra posibilidad es usar el comando "DBCC CHECKCONSTRAINTS". Chequea los BOL
para mas info sobre este comando.


AMB



"José Luis" wrote:

Hola a todos,

tengo que hacer una carga masiva de datos a SQL Server 2005 para la cual
quisiera deshabilitar la integridad referencial, introducir los datos y
volver a habilitarla. esto lo he hecho a través de un alter table y check
constraints.

El problema es que ahora antes de finalizar la importación quisiera validar
la integridad referencial y en caso que hubiera datos que no cumplen las
reglas de la integridad poder volver atrás la transacción. Esto último no
se como se haría. Alguién me podría decir como puedo validar que la base de
datos cumple con las reglas de la integridad referencial?

Muchas gracias por anticipado.

Un saludo,
José Luis.

Preguntas similares