Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tabelas de lista do SQL Server:como mostrar todas as tabelas


Dependendo da versão do SQL Server que você está executando, o método para consultar e retornar uma lista de todas as tabelas criadas pelo usuário pode ser ligeiramente diferente. Abaixo, examinaremos brevemente as instruções TSQL que podem ser usadas para recuperar uma lista de tabelas para o SQL Server 2000 mais antigo e a versão 2005 mais recente ou posterior.

Listando tabelas no SQL Server 2000


Para versões mais antigas do SQL Server (como o SQL Server 2000, embora esse método também tenha suporte no SQL Server 2005 para compatibilidade com versões anteriores), você precisará consultar o SYS.SYSOBJECTS visualização de metadados. SYS.SYSOBJECTS contém uma linha para cada objeto que foi criado no banco de dados, incluindo stored procedures , views e user tables (que são importantes para distinguir das system tables .)

Os SYSOBJECTS table abriga algumas dúzias de colunas de dados, pois deve conter informações sobre praticamente tudo adicionado ao servidor ao longo do tempo. Portanto, para encontrar uma lista de tabelas criadas pelo usuário (ignorando assim as system tables ), precisaremos encontrar resultados onde o xtype coluna (que especifica o object type para essa linha) é igual ao valor U , que significa user table . A instrução TSQL resultante deve ficar assim:
SELECT
  *
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Observação:desde SYSOBJECTS fazem parte do SYS namespace, ao consultar SYSOBJECTS é desnecessário especificar que SYSOBJECTS faz parte do SYS global namespace, para que possamos omiti-lo conforme mostrado no exemplo acima.

Isso retornará uma lista de resultados de todas as tabelas criadas pelo usuário. Como a quantidade de informações retornadas ao consultar todas as colunas é muito grande, você pode querer cortar os resultados visualizando apenas o name coluna e talvez o crdate (data de criação):
SELECT
  name,
  crdate
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Listando tabelas no SQL Server 2005 ou mais recente


Listar todas as tabelas no SQL server ao usar uma versão mais recente (SQL 2005 ou superior) é uma questão de consultar o INFORMATION_SCHEMA exibições que são criadas automaticamente no SQL Server. Eles permitem que você visualize facilmente uma ampla variedade de metadados para essa instância específica do SQL Server, incluindo informações sobre COLUMNS , ROUTINES , e até TABLES .

Você pode notar que há quatro colunas retornadas ao usar o INFORMATION_SCHEMA.TABLES view, mas a coluna mais importante é TABLE_TYPE , que determina se a tabela nessa linha é uma tabela real (BASE TABLE ) ou uma visualização (VIEW ).

Para retornar todas as tabelas e views em uma consulta, execute a seguinte instrução TSQL:
SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Também pode ser aconselhável especificar o banco de dados que você deseja consultar:
SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Se você deseja apenas recuperar tabelas reais e filtrar visualizações dos resultados, adicione um WHERE TABLE_TYPE = 'BASE TABLE' cláusula:
SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE';
GO