Utilizar funciones de catálogo

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). No se recomienda SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft heredado para SQL Server (SQLOLEDB) para el desarrollo de nuevas aplicaciones. Cambie al nuevo controlador OLE DB de Microsoft (MSOLEDBSQL) para SQL Server o al controlador ODBC de Microsoft ODBC Driver for SQL Server más reciente de ahora en adelante. Para SQLNCLI que se incluye como componente de SQL Server motor de base de datos (versiones 2012 a 2019), consulte esta excepción de ciclo de vida de soporte técnico.

Todas las bases de datos tienen una estructura que contiene los datos almacenados en la base de datos. Una definición de esta estructura, junto con otra información como permisos, está almacenada en un catálogo (se implementa como un conjunto de tablas del sistema), también conocido como diccionario de datos.

El controlador ODBC SQL Server Native Client permite a una aplicación determinar la estructura de la base de datos a través de llamadas a funciones de catálogo ODBC. Las funciones de catálogo devuelven información en conjuntos de resultados y se implementan utilizando procedimientos almacenados de catálogo para consultar las tablas del sistema en el catálogo. Por ejemplo, una aplicación puede solicitar un conjunto de resultados que contenga información sobre todas las tablas del sistema o todas las columnas de una tabla determinada. Las funciones de catálogo ODBC estándar se usan para obtener información de catálogo de la SQL Server a la que se ha conectado la aplicación.

SQL Server admite consultas distribuidas en las que se accede a los datos de varios orígenes de datos OLE DB heterogéneos en una sola consulta. Uno de los métodos para tener acceso a un origen de datos OLE DB remoto consiste en definir el origen de datos como un servidor vinculado. Esto se puede hacer mediante sp_addlinkedserver. Una vez definido el servidor vinculado, se puede hacer referencia a los objetos de ese servidor en instrucciones Transact-SQL utilizando un nombre con cuatro partes:

linked_server_name.catalog.schema.object_name.

El controlador ODBC de SQL Server Native Client admite dos funciones específicas del controlador que ayudan a obtener información de catálogo de servidores vinculados:

  • SQLLinkedServers

    Devuelve una lista de los servidores vinculados definidos para el servidor local.

  • SQLLinkedCatalogs

    Devuelve una lista de los catálogos incluidos en un servidor vinculado.

Después de tener un nombre de servidor vinculado y un nombre de catálogo, el controlador ODBC de SQL Server Native Client admite la obtención de información del catálogo mediante un nombre de dos partes de linked_server_name.catalog para CatalogName en las siguientes funciones de catálogo ODBC:

  • SQLColumnPrivileges

  • SQLColumns

  • SQLPrimaryKeys

  • SQLStatistics

  • SQLTablePrivileges

  • SQLTables

La linked_server_name de dos partes.catalog también se admite para FKCatalogName y PKCatalogName en SQLForeignKeys.

Para utilizar SQLLinkedServers y SQLLinkedCatalogs hacen falta los siguientes archivos:

  • sqlncli.h

    Incluye prototipos de función y definiciones de constante para las funciones de catálogo del servidor vinculado. Se debe haber incluido sqlncli.h en la aplicación ODBC y ha de estar en la ruta de inclusión cuando se compile la aplicación.

  • sqlncli11.lib

    Debe estar en la ruta de acceso de la biblioteca del vinculador y estar especificado como un archivo que se va a vincular. sqlncli11.lib se distribuye con el controlador ODBC de SQL Server Native Client.

  • sqlncli11.dll

    Debe estar presente en el momento de la ejecución. sqlncli11.dll se distribuye con el controlador ODBC de SQL Server Native Client.

Consulte también

SQL Server Native Client (ODBC)
SQLColumnPrivileges
SQLColumns
SQLPrimaryKeys
SQLTablePrivileges
SQLTables
SQLStatistics