No SQL Server, você pode usar
OPENQUERY
para executar 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 INSERT
consulta de passagem. Exemplo
Digamos que criamos uma tabela no servidor vinculado chamada
Cats
, em um banco de dados chamado Pets
. Algo assim:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
E agora queremos inserir dados usando um
INSERT
consulta de passagem. Podemos fazer assim:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
Nesse caso, o servidor vinculado é chamado de
Homer
, e estamos inserindo três valores no Pets.dbo.Cats
tabela. 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 | Long Tail | +---------+-----------+
Observe que
OPENQUERY
não aceita variáveis para seus argumentos.