使用目录函数
所有数据库都具有一个包含该数据中存储的数据的结构。 此结构的定义以及权限等其他信息存储在目录(作为一组系统表实现)中,也称为数据字典。
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 驱动程序支持通过对以下 ODBC 目录函数的 CatalogName 使用一个由两部分组成的名称 linked_server_name**.**catalog 来获取目录信息:
SQLColumnPrivileges
SQLColumns
SQLPrimaryKeys
SQLStatistics
SQLTablePrivileges
SQLTables
这一由两部分组成的 linked_server_name**.**catalog 还受 SQLForeignKeys 的 FKCatalogName 和 PKCatalogName 的支持。
使用 SQLLinkedServers 和 SQLLinkedCatalogs 需要以下文件:
sqlncli.h
包括用于链接服务器目录函数的函数原型和常量定义。 必须在 ODBC 应用程序中包括 sqlncli.h,并且在编译应用程序时必须将其放在 include 路径中。
sqlncli11.lib
必须放在链接器的库路径中,并将其指定为要链接的文件。 sqlncli11.lib 随 SQL Server Native Client ODBC 驱动程序一起分发。
sqlncli11.dll
在执行时必须存在。 sqlncli11.dll 随 SQL Server Native Client ODBC 驱动程序一起分发。