- -- Script de désactivation des contraintes FK d'une base de données
-
- -- Déclaration de la variable qui va contenir les requetes à exécuter
- Declare @Requete VarChar(1000)
- -- Déclaration du curseur qui va contenir pour chaque FK, une requete de désactivation
- Declare Cur_Contrainte Cursor For
- select 'ALTER TABLE ' + t.name + ' NOCHECK CONSTRAINT ' + fk.name
- from sysobjects fk, sysobjects t
- where fk.type='F' and fk.parent_obj=t.id
- order by t.name
- Open Cur_Contrainte
-
- -- Boucle sur le curseur et exécution des requetes
- Print 'Désactivation des contraintes en cours, Patience ....'
- Fetch Next From Cur_Contrainte Into @Requete
- While @@Fetch_Status = 0
- Begin
- -- Possibiliter d'afficher les requetes exécutées en supprimant le commentaire ci dessous
- -- Print @Requete
- Execute (@Requete)
- Fetch Next From Cur_Contrainte Into @Requete
- End
- -- Fermeture du curseur et libération des ressources
- Close Cur_Contrainte
- Deallocate Cur_Contrainte
- Print 'Désactivation des contraintes terminée !'
-
-
- -- Script de réactivation des contraintes FK d'une base de données
-
- -- Déclaration de la variable qui va contenir les requetes à exécuter
- Declare @Requete VarChar(1000)
- -- Déclaration du curseur qui va contenir pour chaque FK, une requete de réactivation
- -- Précision : l'option WITH CHECK CHECK permet de forcer le moteur à activer la contrainte
- -- mais aussi à vérifier que le contenu des tables est conforme aux contraintes
- -- sinon il est possible de ne mettre que l'option "CHECK" mais dans ce cas, la contrainte
- -- est activée sans controle de l'existant
- Declare Cur_Contrainte Cursor For
- select 'ALTER TABLE ' + t.name + ' WITH CHECK CHECK CONSTRAINT ' + fk.name
- from sysobjects fk, sysobjects t
- where fk.type='F' and fk.parent_obj=t.id
- order by t.name
-
- Open Cur_Contrainte
-
- -- Boucle sur le curseur et exécution des requetes
- Print 'Réactivation des contraintes en cours, Patience ....'
-
- Fetch Next From Cur_Contrainte Into @Requete
- While @@Fetch_Status = 0
- Begin
- -- Possibiliter d'afficher les requetes exécutées en supprimant le commentaire ci dessous
- -- Print @Requete
- Execute (@Requete)
- Fetch Next From Cur_Contrainte Into @Requete
- End
- -- Fermeture du curseur et libération des ressources
- Close Cur_Contrainte
- Deallocate Cur_Contrainte
- Print 'Réactivation des contraintes terminée !'
-- Script de désactivation des contraintes FK d'une base de données
-- Déclaration de la variable qui va contenir les requetes à exécuter
Declare @Requete VarChar(1000)
-- Déclaration du curseur qui va contenir pour chaque FK, une requete de désactivation
Declare Cur_Contrainte Cursor For
select 'ALTER TABLE ' + t.name + ' NOCHECK CONSTRAINT ' + fk.name
from sysobjects fk, sysobjects t
where fk.type='F' and fk.parent_obj=t.id
order by t.name
Open Cur_Contrainte
-- Boucle sur le curseur et exécution des requetes
Print 'Désactivation des contraintes en cours, Patience ....'
Fetch Next From Cur_Contrainte Into @Requete
While @@Fetch_Status = 0
Begin
-- Possibiliter d'afficher les requetes exécutées en supprimant le commentaire ci dessous
-- Print @Requete
Execute (@Requete)
Fetch Next From Cur_Contrainte Into @Requete
End
-- Fermeture du curseur et libération des ressources
Close Cur_Contrainte
Deallocate Cur_Contrainte
Print 'Désactivation des contraintes terminée !'
-- Script de réactivation des contraintes FK d'une base de données
-- Déclaration de la variable qui va contenir les requetes à exécuter
Declare @Requete VarChar(1000)
-- Déclaration du curseur qui va contenir pour chaque FK, une requete de réactivation
-- Précision : l'option WITH CHECK CHECK permet de forcer le moteur à activer la contrainte
-- mais aussi à vérifier que le contenu des tables est conforme aux contraintes
-- sinon il est possible de ne mettre que l'option "CHECK" mais dans ce cas, la contrainte
-- est activée sans controle de l'existant
Declare Cur_Contrainte Cursor For
select 'ALTER TABLE ' + t.name + ' WITH CHECK CHECK CONSTRAINT ' + fk.name
from sysobjects fk, sysobjects t
where fk.type='F' and fk.parent_obj=t.id
order by t.name
Open Cur_Contrainte
-- Boucle sur le curseur et exécution des requetes
Print 'Réactivation des contraintes en cours, Patience ....'
Fetch Next From Cur_Contrainte Into @Requete
While @@Fetch_Status = 0
Begin
-- Possibiliter d'afficher les requetes exécutées en supprimant le commentaire ci dessous
-- Print @Requete
Execute (@Requete)
Fetch Next From Cur_Contrainte Into @Requete
End
-- Fermeture du curseur et libération des ressources
Close Cur_Contrainte
Deallocate Cur_Contrainte
Print 'Réactivation des contraintes terminée !'