使用目錄函數
所有資料庫都有包含儲存在資料庫之資料的結構。 此結構的定義以及權限之類的其他資訊會儲存在目錄 (當做一組系統資料表實作) 中,也就是所謂的資料字典。
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也支援catalog。
使用 SQLLinkedServers 和 SQLLinkedCatalogs 需要下列檔案:
sqlncli.h
包括適用於連結伺服器目錄函數的函數原型與常數定義。 sqlncli.h 必須包含在 ODBC 應用程式中,而且必須在應用程式編譯時的 Include 路徑中。
sqlncli11.lib
必須位於連結器 (Linker) 的程式庫路徑中,並指定為要連結的檔案。 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