[SQL Server] Trouver les tables vides et qui occupent toujours des pages de données
/*Auteur : KHARROUBI Zouhaier
/*Date : 07/03/2014 */
/*Objectif : Trouvrer toutes les tables vides et qui occupent toujours des fichiers de données */
/*NB : La libération des fichiers de données pour les tables vides se fait via la commande TRUNCATE TABLE MA_TABLE */
USE MA_BASE
CREATE TABLE #InfosTable
(
table_name NVARCHAR(300)
,alloc_unit_type_desc NVARCHAR(100)
,page_count INT
,avg_page_space_used_in_percent FLOAT
,record_count BIGINT
)
INSERT INTO #InfosTable
EXEC sys.sp_MSforeachtable
'SELECT ''?'',alloc_unit_type_desc,
page_count,
avg_page_space_used_in_percent,
record_count
FROM sys.dm_db_index_physical_stats(DB_ID(N''MA_BASE''), OBJECT_ID(N''?''), NULL, NULL , ''Detailed'');';
SELECT * FROM #InfosTable WHERE record_count=0 AND page_count<>0 ORDER BY table_name
DROP TABLE #InfosTable