使用目錄函數
所有資料庫都有包含儲存在資料庫之資料的結構。此結構的定義以及權限之類的其他資訊會儲存在目錄 (當做一組系統資料表實作) 中,也就是所謂的資料字典。
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 的 catalog:
SQLColumnPrivileges
SQLColumns
SQLPrimaryKeys
SQLStatistics
SQLTablePrivileges
SQLTables
兩段式的 linked_server_name**。在 SQLForeignKeys 上,FKCatalogName 和 PKCatalogName 支援** catalog。
使用 SQLLinkedServers 和 SQLLinkedCatalogs 需要下列檔案:
sqlncli.h
包括適用於連結伺服器目錄函數的函式原型與常數定義。sqlncli.h 必須包含在 ODBC 應用程式中,而且必須在應用程式編譯時的 include 路徑中。
sqlncli10.lib
必須位於連結器 (Linker) 的程式庫路徑中,並指定為要連結的檔案。sqlncli10.lib 是透過 SQL Server Native Client ODBC 驅動程式散發。
sqlncli10.dll
在執行時間必須存在。sqlncli10.dll 是透過 SQL Server Native Client ODBC 驅動程式散發。