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