En SQL Server, el OPENQUERY
La función de conjunto de filas le permite 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 una UPDATE
consulta de transferencia.
Ejemplo
Supongamos que el servidor vinculado se llama Homer
tiene una tabla en Pets
base de datos llamada Cats
con los siguientes datos.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultado:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Y digamos que queremos actualizar uno de los nombres de los gatos.
Podríamos hacer eso usando un UPDATE
consulta de transferencia contra el servidor vinculado, como esta.
UPDATE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 3'
)
SET CatName = 'Short Tail';
Resultado:
(1 row affected)
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 | Short Tail | +---------+------------+
Como era de esperar, la tercera fila ahora se ha actualizado.
Una cosa que debo señalar es que OPENQUERY
no acepta variables para sus argumentos.