sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo hacer una consulta de transferencia de ACTUALIZACIÓN en SQL Server

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.