カタログ関数の使用
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance 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 データ ソースのデータに 1 つのクエリでアクセスする分散クエリがサポートされています。 リモートの OLE DB データ ソースへアクセスするための方法として、目的のデータ ソースをリンク サーバーとして定義する方法があります。 これを行うには、 sp_addlinkedserverを使用します。 リンク サーバーを定義すると、このサーバーのオブジェクトを次のような 4 部構成の名前を使用して Transact-SQL ステートメントで参照できるようになります。
linked_server_name.catalog.schema.object_name。
SQL Server Native Client ODBC ドライバーは、リンク サーバーからカタログ情報を取得するのに役立つ 2 つのドライバー固有の関数をサポートしています。
SQLLinkedServers
ローカル サーバーに定義されているリンク サーバーの一覧を返します。
SQLLinkedCatalogs
リンク サーバーに含まれるカタログの一覧を返します。
リンク サーバー名とカタログ名を取得すると、SQL Server Native Client ODBC ドライバーは、 linked_server_name. の 2 部構成の名前を使用してカタログから情報を取得できます。catalog CatalogName 次の ODBC カタログ関数で使用します。
SQLColumnPrivileges
SQLColumns
SQLPrimaryKeys
SQLStatistics
SQLTablePrivileges
SQLTables
2 部構成のlinked_server_name.catalog は、SQLForeignKeys の FKCatalogName および PKCatalogName でもサポートされています。
SQLLinkedServers と SQLLinkedCatalogs を使用する場合は、次のファイルが必要です。
sqlncli.h
リンク サーバーのカタログ関数の関数プロトタイプと定数定義を含むファイルです。 sqlncli.h を ODBC アプリケーションにインクルードし、アプリケーションのコンパイル時にはこのファイルをインクルード パスに配置しておく必要があります。
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