Usando funções de catálogo

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

Importante

SQL Server Native Client (SNAC) não é fornecido com:

  • SQL Server 2022 (16.x) e versões posteriores
  • SQL Server Management Studio 19 e versões posteriores

O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Microsoft OLE DB Provider for SQL Server (SQLOLEDB) herdado não são recomendados para o desenvolvimento de novos aplicativos.

Para novos projetos, use um dos seguintes drivers:

Para o SQLNCLI fornecido como componente do Mecanismo de Base de Dados do SQL Server (versões de 2012 a 2019), consulte esta exceção ao Ciclo de Vida de Suporte .

Todas as bases de dados têm uma estrutura que contém os dados armazenados na base de dados. Uma definição desta estrutura, juntamente com outras informações como permissões, é armazenada num catálogo (implementado como um conjunto de tabelas do sistema), também conhecido como dicionário de dados.

O driver ODBC do SQL Server Native Client permite que uma aplicação determine a estrutura da base de dados através de chamadas a funções do catálogo ODBC. As funções de catálogo retornam informação em conjuntos de resultados e são implementadas usando procedimentos armazenados de catálogo para consultar as tabelas do sistema no catálogo. Por exemplo, uma aplicação pode pedir um conjunto de resultados contendo informações sobre todas as tabelas do sistema ou todas as colunas de uma determinada tabela. As funções padrão de catálogo ODBC são usadas para obter informação de catálogo do SQL Server ao qual a aplicação se conectou.

O SQL Server suporta consultas distribuídas nas quais dados de múltiplas e heterogéneas fontes de dados OLE DB são acedidas numa única consulta. Um dos métodos para aceder a uma fonte de dados OLE DB remota é definir a fonte de dados como um servidor ligado. Isto pode ser feito usando sp_addlinkedserver. Depois de o servidor ligado ter sido definido, os objetos desse servidor podem ser referenciados em Transact-SQL instruções usando um nome de quatro partes:

linked_server_name.catalog.schema.nome_objecto.

O driver ODBC do SQL Server Native Client suporta duas funções específicas do driver que ajudam a obter informação de catálogo de servidores ligados:

  • SQLLinkedServers

    Devolve uma lista dos servidores ligados definidos ao servidor local.

  • SQLLinkedCatalogs

    Devolve uma lista dos catálogos contidos num servidor ligado.

Depois de ter um nome de servidor ligado e um nome de catálogo, o driver ODBC SQL Server Native Client suporta obter informação do catálogo usando um nome de duas partes, linked_server_name.catálogo para Nome do Catálogo nas seguintes funções do catálogo ODBC:

  • SQLColumnPrivileges

  • SQLColumns

  • SQLPrimaryKeys

  • SQLStatistics

  • SQLTablePrivileges

  • SQLTables

A linked_server_name em duas partes.catálogo também é suportado para FKCatalogName e PKCatalogName em SQLForeignKeys.

Usar SQLLinkedServers e SQLLinkedCatalogs requer os seguintes ficheiros:

  • sqlncli.h

    Inclui protótipos de funções e definições constantes para as funções do catálogo de servidores ligados. sqlncli.h deve estar incluído na aplicação ODBC e deve estar no caminho de inclusão quando a aplicação for compilada.

  • sqlncli11.lib

    Deve estar no caminho da biblioteca do linker e especificado como ficheiro a ser ligado. sqlncli11.lib é distribuído com o driver ODBC do SQL Server Native Client.

  • sqlncli11.dll

    Deve estar presente na hora da execução. sqlncli11.dll é distribuído com o driver ODBC SQL Server Native Client.