分享方式:


使用目錄函數

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

重要

SQL Server Native Client (SNAC) 未隨附:

  • SQL Server 2022 (16.x) 及更新版本
  • SQL Server Management Studio 19 和更新版本

不建議使用 SQL Server Native Client (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 進行新的應用程式開發。

針對新專案,請使用下列其中一個驅動程式:

針對 SQL Server 資料庫引擎 (2012 到 2019 版) 的隨附元件 SQLNCLI,請參閱支援生命週期例外狀況

所有資料庫都有一個結構,其中包含儲存在資料庫中的數據。 這個結構的定義,以及其他資訊,例如許可權,會儲存在目錄(實作為一組系統數據表),也稱為數據字典。

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_name。 SQLForeignKeys 上也支援 FKCatalogNamePKCatalogName

使用 SQLLinkedServers 和 SQLLinkedCatalogs 需要下列檔案:

  • sqlncli.h

    包含連結伺服器類別目錄函式的函式原型和常數定義。 sqlncli.h 必須包含在 ODBC 應用程式中,而且必須在編譯應用程式時包含在 include 路徑中。

  • 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