SQLTables

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

Os SQLTables podem ser executados num cursor de servidor estático. Uma tentativa de executar SQLTables num cursor atualizável (dinâmico ou de conjunto de chaves) devolverá SQL_SUCCESS_WITH_INFO indicando que o tipo de cursor foi alterado.

O SQLTables reporta tabelas de todas as bases de dados quando o parâmetro CatalogName está SQL_ALL_CATALOGS e todos os outros parâmetros contêm valores padrão (ponteiros NULL).

Para reportar catálogos, esquemas e tipos de tabelas disponíveis, o SQLTables faz uso especial de strings vazias (ponteiros de byte de comprimento zero). As cadeias vazias não são valores padrão (ponteiros NULL).

O driver ODBC SQL Server Native Client suporta informações de reporte para tabelas em servidores ligados, aceitando um nome em duas partes para o parâmetro CatalogName: Linked_Server_Name.Catalog_Name.

O SQLTables devolve informação sobre quaisquer tabelas cujos nomes correspondam a TableName e sejam propriedade do utilizador atual.

SQLTables e Parâmetros Table-Valued

Quando o atributo da instrução SQL_SOPT_SS_NAME_SCOPE tem o valor SQL_SS_NAME_SCOPE_TABLE_TYPE, em vez do seu valor padrão SQL_SS_NAME_SCOPE_TABLE, o SQLTables devolve informação sobre os tipos de tabelas. O valor TABLE_TYPE devolvido para um tipo de tabela na coluna 4 do conjunto de resultados devolvido pelos SQLTables é TABLETYPE. Para mais informações sobre SQL_SOPT_SS_NAME_SCOPE, veja SQLSetStmtAttr.

Tabelas, vistas e sinónimos partilham um namespace comum que é distinto do namespace usado pelos tipos de tabelas. Embora não seja possível ter uma tabela e uma vista com o mesmo nome, é possível ter uma tabela e um tipo de tabela com o mesmo no mesmo catálogo e esquema.

Para mais informações sobre parâmetros com valores de tabela, veja Table-Valued Parâmetros (ODBC).

Exemplo

// Get a list of all tables in the current database.  
SQLTables(hstmt, NULL, 0, NULL, 0, NULL, 0, NULL,0);  
  
// Get a list of all tables in all databases.  
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, NULL, 0, NULL, 0, NULL,0);  
  
// Get a list of databases on the current connection's server.  
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, (SQLCHAR*)"", 0, (SQLCHAR*)"",  
    0, NULL, 0);  

Ver também

Função SQLTables
Detalhes da implementação da API ODBC