EXECUTE sp_MSforeachtable
@command1 = 'sp_helptext [?];',
@whereand = 'and OBJECTPROPERTY(o.id, N''IsUserTable'') = 0 or OBJECTPROPERTY(o.id, N''IsProcedure'') = 1'
- IsUserTable: permite indicar si deseamos mostrar las tablas del sistema y las de usuario utilizamos el valor 0, si solo deseamos mostrar las de usuario se le indica 1.
- IsView: si deseamos desplegar las vistas (1).
- IsProcedure: si deseamos desplegar los procedimientos almacenados (1).
Este script nos permite listar todas las tablas de una Base de Datos y el espacio que ocupan.
EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?];';
Este, nos muestra la misma información pero ordenada y tabulada, este es más completo:
EXECUTE sp_MSforeachtable
@precommand = 'CREATE TABLE ##Results(
name nvarchar(128),
rows char(11),
reserved varchar(50),
data varchar(50),
index_size varchar(50),
unused varchar(50)
)',
@command1 = 'UPDATE STATISTICS ?;',
@command2 = 'INSERT INTO ##Results EXECUTE sp_spaceused [?];',
@whereand = 'or OBJECTPROPERTY(o.id, N''IsSystemTable'') = 1',
@postcommand = 'SELECT * FROM ##Results; DROP TABLE ##Results'
Información de MSSQLTips por Arshad Ali.
Este script nos permite listar todas las tablas de una Base de Datos y la cantidad de filas que contiene cada una.
EXEC sp_MSForEachTable 'SELECT ''?'' as TableName, COUNT(1) as TotalRows FROM ? WITH(NOLOCK)'
Información de MSSQLTips por Arshad Ali.