Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да направите UPDATE Pass-Through заявка в SQL Server

В SQL Server, OPENQUERY функцията rowset ви позволява да изпълните преходна заявка на свързан сървър.

OPENQUERY обикновено се споменава в FROM клауза на заявка, сякаш е таблица, но може да се посочи и като целева таблица на INSERT , UPDATE или DELETE изявление.

Тази статия представя пример за използване на OPENQUERY за да направите UPDATE преминаваща заявка.

Пример

Да предположим, че свързаният сървър, наречен Homer има таблица в Pets база данни, наречена Cats със следните данни.

SELECT * FROM OPENQUERY (
    Homer, 
    'SELECT * FROM Pets.dbo.Cats'
    );

Резултат:

+---------+-----------+
| CatId   | CatName   |
|---------+-----------|
| 1       | FluffDupp |
| 2       | Scratch   |
| 3       | Long Tail |
+---------+-----------+

И да кажем, че искаме да актуализираме едно от имената на котката.

Можем да направим това с помощта на UPDATE транзитна заявка към свързания сървър, като тази.

UPDATE OPENQUERY (
    Homer, 
    'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 3'
    )
SET CatName = 'Short Tail';

Резултат:

(1 row affected)

Проверете резултатите

Вече можем да изпълним SELECT преминаваща заявка, за да видите резултатите.

SELECT * FROM OPENQUERY (
    Homer, 
    'SELECT * FROM Pets.dbo.Cats'
    );

Резултат:

+---------+------------+
| CatId   | CatName    |
|---------+------------|
| 1       | FluffDupp  |
| 2       | Scratch    |
| 3       | Short Tail |
+---------+------------+

Както се очакваше, третият ред вече е актуализиран.

Едно нещо, което трябва да отбележа е, че OPENQUERY не приема променливи за своите аргументи.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разгръщане на LocalDB на клиентски компютър

  2. Как да промените цвета и шрифтовете в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 12

  3. Как ROW_NUMBER() работи в SQL Server

  4. SSMS 2016 Грешка при импортиране на Azure SQL v12 bacpac:главните ключове без парола не се поддържат

  5. GETUTCDATE() Примери в SQL Server (T-SQL)