En SQL Server, puede usar OPENQUERY
para ejecutar una consulta de transferencia en un servidor vinculado.
OPENQUERY
se hace referencia comúnmente en el FROM
cláusula de una consulta como si fuera una tabla, pero también se puede hacer referencia a ella como la tabla de destino de un INSERT
, UPDATE
o DELETE
declaración.
Este artículo presenta un ejemplo del uso de OPENQUERY
para hacer un INSERT
consulta de transferencia.
Ejemplo
Digamos que creamos una tabla en el servidor vinculado llamada Cats
, en una base de datos llamada Pets
.
Algo como esto:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
Y ahora queremos insertar datos usando un INSERT
consulta de transferencia.
Podemos hacerlo así:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
En este caso, el servidor vinculado se llama Homer
, y estamos insertando tres valores en Pets.dbo.Cats
mesa.
Comprueba los resultados
Ahora podemos ejecutar un SELECT
consulta de transferencia para ver los resultados.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultado:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Tenga en cuenta que OPENQUERY
no acepta variables para sus argumentos.