No SQL Server, o
OPENQUERY
A função de conjunto de linhas permite que você execute uma consulta de passagem em um servidor vinculado. OPENQUERY
é comumente referenciado no FROM
cláusula de uma consulta como se fosse uma tabela, mas também pode ser referenciada como a tabela de destino de um INSERT
, UPDATE
, ou DELETE
demonstração. Este artigo apresenta um exemplo de uso de
OPENQUERY
para fazer um UPDATE
consulta de passagem. Exemplo
Suponha que o servidor vinculado chamado
Homer
tem uma tabela no Pets
banco de dados chamado Cats
com os seguintes dados. SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultado:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
E digamos que queremos atualizar um dos nomes do gato.
Podemos fazer isso usando um
UPDATE
consulta de passagem no servidor vinculado, assim. UPDATE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 3'
)
SET CatName = 'Short Tail';
Resultado:
(1 row affected)
Verifique os resultados
Agora podemos executar um
SELECT
consulta de passagem para ver os resultados. SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultado:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Short Tail | +---------+------------+
Como esperado, a terceira linha foi atualizada.
Uma coisa que devo salientar é que
OPENQUERY
não aceita variáveis para seus argumentos.