SQLTables
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
SQLTables podem ser executados em um cursor de servidor estático. Uma tentativa de executar SQLTables em um cursor atualizável (dinâmico ou conjunto de chaves) retornará SQL_SUCCESS_WITH_INFO indicando que o tipo de cursor foi alterado.
SQLTables relata tabelas de todos os bancos de dados quando o parâmetro CatalogName é SQL_ALL_CATALOGS e todos os outros parâmetros contêm valores padrão (ponteiros NULL).
Para relatar catálogos, esquemas e tipos de tabela disponíveis, o SQLTables faz uso especial de cadeias de caracteres vazias (ponteiros de byte de comprimento zero). As cadeias de caracteres vazias não são os valores padrões (ponteiros NULL).
O driver ODBC do SQL Server Native Client dá suporte a informações de relatório para tabelas em servidores vinculados, aceitando um nome de duas partes para o parâmetro CatalogName : Linked_Server_Name.Catalog_Name.
SQLTables retorna informações sobre todas as tabelas cujos nomes correspondem a TableName e são de propriedade do usuário atual.
SQLTables e parâmetros com valor de tabela
Quando o atributo de instrução SQL_SOPT_SS_NAME_SCOPE tem o valor SQL_SS_NAME_SCOPE_TABLE_TYPE, em vez de seu valor padrão de SQL_SS_NAME_SCOPE_TABLE, SQLTables retorna informações sobre tipos de tabela. O valor TABLE_TYPE retornado para um tipo de tabela na coluna 4 do conjunto de resultados retornado por SQLTables é TABLE TYPE. Para obter mais informações sobre SQL_SOPT_SS_NAME_SCOPE, consulte SQLSetStmtAttr.
Tabelas, exibições e sinônimos compartilham um namespace comum que é diferente do namespace usado por tipos de tabela. Apesar de não ser possível ter uma tabela e uma exibição com o mesmo nome, é possível ter uma tabela de um tipo de tabela com o mesmo nome, no mesmo catálogo e no mesmo esquema.
Para obter mais informações sobre parâmetros com valor de tabela, consulte ODBC (Parâmetros com valor de tabela).
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);