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 DELETE
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 | Short Tail | +---------+------------+
E digamos que queremos excluir um dos gatos do banco de dados.
Podemos fazer isso usando um
DELETE
consulta de passagem no servidor vinculado, assim. DELETE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 2'
);
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 | | 3 | Short Tail | +---------+------------+
Como esperado, a segunda linha foi excluída e agora restam apenas duas linhas.
Uma coisa a notar é que
OPENQUERY
não aceita variáveis para seus argumentos.