vendredi 19 décembre 2014

Requête pour lister les tables en SQL SERVER

Il est possible par l'intermédiaire d'une requête de lister les tables que vous avez créé dans votre base de données SQL Server.

Sont exclues bien évidemment de cette requête les tables systèmes propres à SQL Server.

Vous noterez au passage les informations extraites, par exemple le nombre d'occurences d'une table.

Voici la requête :

SELECT 
    t.NAME AS TableName,
    --i.name as indexName,
    p.[Rows],
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' AND
    i.OBJECT_ID > 255 AND   
    i.index_id <= 1
GROUP BY 
    t.NAME, i.object_id, i.index_id, i.name, p.[Rows]
ORDER BY 
    --object_name(i.object_id) 
p.[Rows] desc

Aucun commentaire:

Enregistrer un commentaire