SQLTables

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

SQLTables 可以在静态服务器游标上执行。 尝试对可更新 (动态游标或键集) 游标执行 SQLTables 将返回SQL_SUCCESS_WITH_INFO指示游标类型已更改。

SQLTables 在SQL_ALL_CATALOGS CatalogName 参数时报告来自所有数据库的表,而所有其他参数包含默认值 (NULL 指针) 。

为了报告可用的目录、架构和表类型,SQLTables 特别使用空字符串 (零长度字节指针) 。 空字符串不是默认值(NULL 指针)。

SQL Server Native Client ODBC 驱动程序支持报告链接服务器上的表的信息,方法是接受由两部分构成的 CatalogName 参数名称:Linked_Server_Name.Catalog_Name

SQLTables 返回有关名称与 TableName 匹配且由当前用户拥有的任何表的信息。

SQLTables 和表值参数

当语句属性SQL_SOPT_SS_NAME_SCOPE的值SQL_SS_NAME_SCOPE_TABLE_TYPE,而不是其默认值SQL_SS_NAME_SCOPE_TABLE时,SQLTables 将返回有关表类型的信息。 SQLTables 返回的结果集的第 4 列中为表类型返回的TABLE_TYPE值为 TABLE TYPE。 有关SQL_SOPT_SS_NAME_SCOPE的详细信息,请参阅 SQLSetStmtAttr

表、视图和同义词共享公用的命名空间,该命名空间不同于表类型使用的命名空间。 虽然表和视图不能具有相同的名称,但是在相同目录和架构中的表和表类型可以具有相同的名称。

有关表值参数的详细信息,请参阅 表值参数 (ODBC)

示例

// 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);  

另请参阅

SQLTables 函数
ODBC API 实现细节