Bonjour,

J'aimerais "Nettoyer" une base.
En gros, je pars d'une base restaurée, et j'obtiens une base bien pleine.
Je désire créer un script qui sélectionne toutes les tables et qui Truncate tout !
Le problème c'est qu'il y a des contraintes. Donc il faudrait que je fasse une liste des tables, que je check les contraintes, que je les *désactive* (non justement) - que je les remove et que j'efface les données.

Quelqu'un a une idée ?
ou un script du genre

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
24
25
26
27
 
DECLARE @table_name nvarchar(30)
 
DECLARE FIRST_LOOP_CURSOR CURSOR 
    FOR SELECT name FROM sysobjects
		WHERE type='U'
		AND NOT name LIKE 'dt%'
 
OPEN FIRST_LOOP_CURSOR 
FETCH NEXT FROM FIRST_LOOP_CURSOR 
INTO @table_name
 
WHILE @@FETCH_STATUS = 0
 
	BEGIN
 
		Print @table_name
 
		--DELETE FROM @table_name
 
    	FETCH NEXT FROM FIRST_LOOP_CURSOR
		INTO @table_name
 
	END
 
CLOSE FIRST_LOOP_CURSOR 
DEALLOCATE FIRST_LOOP_CURSOR
Merci