sql-server - via - show all tables sql




Como faço para obter lista de todas as tabelas em um banco de dados usando o TSQL? (12)

A desvantagem de INFORMATION_SCHEMA.TABLES é que ele também inclui tabelas do sistema, como dtproperties e as tabelas MSpeer_... , sem nenhuma maneira de diferenciá-las de suas próprias tabelas.

Eu recomendaria o uso de sys.objects (a nova versão da sysobjects obsoleta sysobjects ), que suporta a exclusão das tabelas do sistema:

select *
from sys.objects
where type = 'U'      -- User tables
and is_ms_shipped = 0 -- Exclude system tables

Qual é a melhor maneira de obter os nomes de todas as tabelas em um banco de dados específico no SQL Server?


Graças a Ray Vega, cuja resposta dá todas as tabelas de usuários em um banco de dados ...

exec sp_msforeachtable 'print' '?' ''

sp_helptext mostra a consulta subjacente, que resume para ...

select * from dbo.sysobjects o 
join sys.all_objects syso on o.id =  syso.object_id  
where OBJECTPROPERTY(o.id, 'IsUserTable') = 1 
and o.category & 2 = 0 

O uso de SELECT * FROM INFORMATION_SCHEMA.COLUMNS também mostra todas as tabelas e colunas relacionadas.


Por favor, use isso. Você obterá nomes de tabela junto com nomes de esquema:

SELECT SYSSCHEMA.NAME, SYSTABLE.NAME
FROM SYS.tables SYSTABLE
INNER JOIN SYS.SCHEMAS SYSSCHEMA
ON SYSTABLE.SCHEMA_ID = SYSSCHEMA.SCHEMA_ID

você pode simplesmente selecionar seu banco de dados primeiro

use database_name;

então apenas digite

show tables;

select * from sysobjects where xtype='U'


SELECT * FROM INFORMATION_SCHEMA.TABLES 

ou

SELECT * FROM Sys.Tables

SELECT * FROM information_schema.tables
where TABLE_TYPE = 'BASE TABLE'

SQL Server 2012


SELECT name 
FROM sysobjects 
WHERE xtype='U' 
ORDER BY name;

(Padrão do SQL Server 2000; ainda suportado no SQL Server 2005.)


SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

Aqui está uma lista de outros tipos de objetos que você pode procurar também:

  • AF: função agregada (CLR)
  • C: restrição CHECK
  • D: restrição padrão ou DEFAULT
  • F: restrição CHAVE ESTRANGEIRA
  • L: log
  • FN: função escalar
  • Função escalar FS: Assembly (CLR)
  • Função com valor de tabela FT: Assembly (CLR)
  • SE: Função de mesa alinhada
  • IT: tabela interna
  • P: procedimento armazenado
  • Procedimento armazenado PC: Assembly (CLR)
  • PK: restrição PRIMARY KEY (tipo é K)
  • RF: procedimento armazenado do filtro de replicação
  • S: tabela do sistema
  • SN: Sinônimo
  • SQ: fila de serviço
  • Disparador DML do TA: Assembly (CLR)
  • TF: função de tabela
  • TR: disparador SQL DML
  • TT: tipo de mesa
  • U: tabela de usuários
  • UQ: restrição UNIQUE (o tipo é K)
  • V: vista
  • X: procedimento armazenado estendido

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO

OU

USE YourDBName
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES 
GO

exec sp_msforeachtable 'print ''?'''




database-table