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