Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 12h14   #1
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 63
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France

Informations forums :
Inscription : décembre 2008
Messages : 63
Points : 27
Points : 27
Par défaut Une Question Bête

Bonjour ,

J'ai une question bête :

J'ai désactivé les contraintes sur une BDD afin de pouvoir temporairement insérer des données en masse.
Je n'arrive plus à réactiver ces contraintes.

Voilà la question bête, est ce qu' en restaurant cette BDD à une date antérieure , je peux retrouver mes contraintes activées?


Voici le script que j'ai utilisé pour désactiver et réactiver les contraintes de ma BDD .

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
 
-- 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 !'
Merci d'avance
Blacknounou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 12h53   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Il faudrait stocker la requête de réactivation avant de désactiver les contraintes...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h02   #3
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 63
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France

Informations forums :
Inscription : décembre 2008
Messages : 63
Points : 27
Points : 27
Donc plus moyen de récupérer mes contraintes, si j'ai exécuté mon script de désactivation avant celui de réactivation?

Blacknounou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h09   #4
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
C'est çà :-) tu les as supprimées donc quand tu interroges les tables sysobjects il ne te renvois rien puisqu'elles n'existe plus...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h13   #5
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 63
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France

Informations forums :
Inscription : décembre 2008
Messages : 63
Points : 27
Points : 27
Merci pour l'info !

et avec une restauration de BDD ça ne reviens pas ?
Blacknounou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h13   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Si
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h17   #7
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 63
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France

Informations forums :
Inscription : décembre 2008
Messages : 63
Points : 27
Points : 27
Merki !!!
Blacknounou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h50.


 
 
 
 
Partenaires

Hébergement Web