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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 José Luis
28/12/2009 - 11:08 | Informe spam
Hola Alejando,

muchas gracias por tu respuesta. He con "DBCC CHECKCONSTRAINTS" y me ha ido
muy bien.

Un saludo,
José Luis.

"Alejandro Mesa" wrote:

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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida