使用目錄函數

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

SQL Server Native Client (通常縮寫為 SNAC) 已從 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除。 不建議使用 SQL Server Native Client (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 開發新的應用程式。 往後請改用新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新的 Microsoft ODBC Driver for SQL Server。 如需 SQL Server 資料庫引擎元件隨附的 SQLNCLI(版本 2012 到 2019),請參閱此 支援生命週期例外狀況

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

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 上 也支援 FKCatalogName PKCatalogName

使用 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