Share via


Usando consultas de passagem como tabelas

SQL Server envia consultas de passagem como cadeias de caracteres não-interpretadas para uma fonte de dados OLE DB. A consulta deve estar em uma sintaxe que a fonte de dados OLE DB aceite. Uma instrução Transact-SQL usa os resultados de uma consulta de passagem como se fosse uma consulta de tabela comum.

Os seguintes são modos de gerar um conjunto de linhas de um provedor OLE DB:

  • Consultar um objeto na fonte de dados que o provedor pode expor como um conjunto de linhas tabular. Todos os provedores oferecem suporte a essa capacidade.

  • Enviar um comando ao provedor de que este pode processar e expor os resultados do comando como um conjunto de linhas. Esta capacidade requer que o provedor ofereça suporte ao objeto OLE DB Command e todas as suas interfaces obrigatórias.

Quando um provedor oferece suporte ao objeto Command, as seguintes funções Transact-SQL podem ser usadas para enviar os comandos de provedor, chamados de consultas de passagem:

  • OPENQUERY envia uma cadeia de caracteres de comando a uma fonte de dados OLE DB usando um nome de servidor vinculado.

  • OPENROWSET e OPENDATASOURCE oferecem suporte ao envio de uma cadeia de caracteres de comando a uma fonte de dados OLE DB. O conjunto de linhas resultante pode ser referenciado usando-se um nome ad hoc.

OPENROWSET e OPENQUERY oferecem suporte a consultas de passagem nas quais a cadeia de caracteres da consulta contém uma chamada de procedimento armazenado apenas quando a consulta tem uma das seguintes características:

  • Executa uma única instrução SELECT estática.

  • Não usa nenhuma instrução EXECUTE dinâmica.

  • Não execute nenhuma operação de modificação de dados.

A especificação OLE DB não define uma linguagem de comandos que deve ser usada por todos os provedores OLE DB. Os provedores OLE DB podem oferecer suporte a qualquer linguagem de comandos relacionada aos dados que eles expõem. Os provedores OLE DB que expõem os dados em bancos de dados relacionais geralmente oferecem suporte à linguagem SQL. Outros tipos de provedores, como os que expõem os dados em um arquivo de e-mail ou diretório de rede, geralmente oferecem suporte a uma linguagem diferente.