Bonjours à tous,
Voilà j'ai un petit problème.
J'aimerais bien remettre à zéro ma base de donnée sans avoir besoin de faire un "drop and créate" des tables.
J'ai une Bdd avec 200 tables et des PK,FK dans tous les sens.
La solution un peu brutale que j'utilise à l'heure actuel est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 -- Suppression de toutes les FK DECLARE @NomTable as varchar(50) DECLARE curNomTable CURSOR FOR SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' FOR READ ONLY OPEN curNomTable FETCH NEXT FROM curNomTable INTO @NomTable WHILE (@@fetch_status = 0) BEGIN EXEC ('TRUNCATE TABLE ' + @NomTable) FETCH NEXT FROM curNomTable INTO @NomTable END -- Création de toutes les FK supprimées
Avez vous une solution un peu plus propre? et surtout qui serait optimisé peu importe le nombre de table et FK?
Car mon modèle risque de changer bientôt et j'aimerais éviter de devoir tout le temps modifier le script de RAZ.
Merci pour votre aide.
EDIT : Je tiens juste à préciser qu'il n'y a aucun on delete cascade sur mes clef primaire d'où mon problème
Partager