Taille occupée de toutes les tables de chaque BDD
Bonjour,
J'ai créé la procédure suivante mais cela ne fonctionne pas.
Le USE n'est pas pris en compte...
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
| Declare @temp varchar(50), @DBName_ varchar(100), @TBName_ varchar(100), @Size_ float
Declare @sql varchar(5000)
--Création de la table temporaire
CREATE TABLE #sp_spaceused (TBName varchar(150), NbRows bigint, SReserved varchar(50), SData varchar(50), Sindex varchar(50), SFree varchar(50))
Declare cursor_db CURSOR
--On liste les basses des données
For SELECT name AS DBName FROM master.dbo.sysdatabases
OPEN cursor_db
Fetch next from cursor_db
INTO @DBName_
WHILE @@Fetch_STATUS = 0
BEGIN
--Print 'SELECT table_name FROM information_schema.tables WHERE table_Catalog= ''' + @DBName_ + ''' '
--Print 'USE ' + @DBName_
--On liste les tables...
Execute('USE ' + @DBName_ )
Declare cursor_size CURSOR
For SELECT table_name FROM information_schema.tables WHERE table_Catalog= @DBName_ and Table_Type = 'BASE TABLE'
OPEN cursor_size
Fetch next from cursor_size
INTO @TBName_
WHILE @@Fetch_STATUS = 0
BEGIN
insert into #sp_spaceused execute sp_spaceused @TBName_
Fetch next from cursor_size
INTO @TBName_
END
CLOSE cursor_size;
DEALLOCATE cursor_size;
Fetch next from cursor_db
INTO @DBName_
END
CLOSE cursor_db;
DEALLOCATE cursor_db;
select * from #sp_spaceused
Drop Table #sp_spaceused |
Comment faire pour lister toutes les tables de chaque base de données en une seule procédure?
Merci d'avance
Portekoi