Query para listar todas as tabelas e colunas de um banco de dados SQL Server

Com essa query, é possível fazer uma listagem das tabelas de uma database com as colunas e detalhes como tipo, tamanho, e se o campo aceita nulo.

É possível listar os campos de uma tabela adicionando um filtro TABELAS.NAME = ‘tabela desejada’ ou listar as views (XTYPE = ‘V’) ou procedures (XTYPE = ‘P’)

SELECT TABELAS.NAME AS TABELA, COLUNAS.NAME AS COLUNA, TIPOS.NAME AS TIPO, COLUNAS.LENGTH AS TAMANHO, COLUNAS.ISNULLABLE AS EH_NULO FROM SYSOBJECTS TABELAS INNER JOIN SYSCOLUMNS COLUNAS ON (TABELAS.ID = COLUNAS.ID) INNER JOIN SYSTYPES TIPOS ON (COLUNAS.USERTYPE = TIPOS.USERTYPE) WHERE TABELAS.XTYPE = ‘U’ /*’U’ = TABELAS*/ ORDER BY TABELAS.NAME