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 un DELETE
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 | Short Tail | +---------+------------+
Y digamos que queremos eliminar uno de los gatos de la base de datos.
Podríamos hacer eso usando un DELETE
consulta de transferencia contra el servidor vinculado, como esta.
DELETE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 2'
);
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 | | 3 | Short Tail | +---------+------------+
Como era de esperar, la segunda fila se eliminó y ahora solo quedan dos filas.
Una cosa a tener en cuenta es que OPENQUERY
no acepta variables para sus argumentos.