miércoles, 7 de diciembre de 2011

Cómo mostrar los procedimientos almacenados y/o las vistas de una Base de Datos con todo y el código de cada uno de ell@s:

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).

¿Cómo listar las tablas existentes de una BD, la cantidad de registros y el espacio ocupado?

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.

¿Cómo listar las tablas existentes de una BD y cuántos registros tienen c/u?

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.