使用目录函数

所有数据库都有一个结构,其中包含存储在数据库中的数据。 此结构的定义以及其他信息(如权限)存储在目录(实现为一组系统表)中,也称为数据字典。

SQL Server Native Client ODBC 驱动程序使应用程序能够通过调用 ODBC 目录函数来确定数据库结构。 目录函数在结果集中返回信息,并使用目录存储过程来查询目录中的系统表。 例如,应用程序可能会请求一个结果集,其中包含有关系统上所有表或特定表中所有列的信息。 标准 ODBC 目录函数用于从应用程序连接到的 SQL Server 获取目录信息。

SQL Server 支持分布式查询,在单个查询中访问来自多个异类 OLE DB 数据源的数据。 访问远程 OLE DB 数据源的方法之一是将数据源定义为链接服务器。 可以使用 sp_addlinkedserver来完成此作。 定义链接服务器后,可以使用四部分名称在 Transact-SQL 语句中引用该服务器中的对象:

linked_server_name.catalog.schema.object_name

SQL Server Native Client ODBC 驱动程序支持两个特定于驱动程序的函数,可帮助从链接服务器获取目录信息:

  • SQLLinkedServers

    返回定义到本地服务器的链接服务器的列表。

  • SQLLinkedCatalogs

    返回链接服务器中包含的目录的列表。

拥有链接服务器名称和目录名称后,SQL Server Native Client ODBC 驱动程序支持使用由两部分构成的名称linked_server_name从目录中获取信息以下 ODBC 目录函数上的 CatalogName 目录:

  • SQLColumnPrivileges

  • SQLColumns

  • SQLPrimaryKeys

  • SQLStatistics

  • SQLTablePrivileges

  • SQLTables

由两部分构成的linked_server_nameSQLForeignKeys 上的 FKCatalogNamePKCatalogName 也支持目录

使用 SQLLinkedServers 和 SQLLinkedCatalog 需要以下文件:

  • sqlncli.h

    包括链接服务器目录函数的函数原型和常量定义。 sqlncli.h 必须包含在 ODBC 应用程序中,并且必须在编译应用程序时包含在包含路径中。

  • sqlncli11.lib

    必须位于链接器的库路径中,并指定为要链接的文件。 sqlncli11.lib 随 SQL Server Native Client ODBC 驱动程序一起分发。

  • sqlncli11.dll

    必须在执行时存在。 sqlncli11.dll 随 SQL Server Native Client ODBC 驱动程序一起分发。

另请参阅

SQL Server Native Client (ODBC)
SQLColumnPrivileges
SQLColumns
SQLPrimaryKeys
SQLTablePrivileges
SQLTables
SQLStatistics