Deshabilitar FK

10/09/2003 - 16:13 por German de Perosanz | Informe spam
Existe la posibilidad de deshabilitar las FK de una base asi puedo hacer un
TRUNCATE TABLE de todas las tablas para insertarle nueva info, luego de esto
deberia poder habilitar todas las FK.

Muchas gracias

Esto en oracle se hace asi: (para que tengan una idea de lo que quiero
hacer)

SELECT 'ALTER TABLE '|| C.TABLE_NAME||' DISABLE CONSTRAINT
'||C.CONSTRAINT_NAME ||';'
FROM USER_CONSTRAINTS C, USER_TABLES T WHERE C.CONSTRAINT_TYPE <>'C' AND
C.OWNER = 'GREYDIR'
AND C.TABLE_NAME = T.TABLE_NAME
ORDER BY DECODE(C.CONSTRAINT_TYPE, 'P', 1, 'U', 2, 3) DESC;



German
 

Leer las respuestas

#1 Miguel Egea
10/09/2003 - 18:28 | Informe spam
SqlServer trata la integridad referencial de forma más robusta y no te
permitirá hacer un truncate con que exista una relación de integridad, esté
o no habilitada.

Sin embargo, por lo que veo lo que haces es vaciar todas las tablas ¿? si es
así SQL te permite generar un script de toda la bd completa y podrías
lanzarlo donde quisiese obteniendo esa bd vacia


Saludos Cordiales
=Proxima reunión virtual sobre rendimiento
Viernes 12 de Septiembre de 2003, 19:30 hora española.
18:30 hora GMT.
A través del canal #sqlserver del irc hispano

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"German de Perosanz" escribió en el mensaje
news:uKiB$
Existe la posibilidad de deshabilitar las FK de una base asi puedo hacer


un
TRUNCATE TABLE de todas las tablas para insertarle nueva info, luego de


esto
deberia poder habilitar todas las FK.

Muchas gracias

Esto en oracle se hace asi: (para que tengan una idea de lo que quiero
hacer)

SELECT 'ALTER TABLE '|| C.TABLE_NAME||' DISABLE CONSTRAINT
'||C.CONSTRAINT_NAME ||';'
FROM USER_CONSTRAINTS C, USER_TABLES T WHERE C.CONSTRAINT_TYPE <>'C' AND
C.OWNER = 'GREYDIR'
AND C.TABLE_NAME = T.TABLE_NAME
ORDER BY DECODE(C.CONSTRAINT_TYPE, 'P', 1, 'U', 2, 3) DESC;



German


Preguntas similares