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.