Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách thực hiện CẬP NHẬT truy vấn chuyển qua trong SQL Server

Trong SQL Server, OPENQUERY chức năng tập hợp hàng cho phép bạn thực hiện truy vấn chuyển qua trên máy chủ được liên kết.

OPENQUERY thường được tham chiếu trong FROM mệnh đề của một truy vấn như thể nó là một bảng, nhưng nó cũng có thể được tham chiếu như là bảng đích của một INSERT , UPDATE hoặc DELETE tuyên bố.

Bài viết này trình bày một ví dụ về việc sử dụng OPENQUERY để thực hiện UPDATE truy vấn chuyển qua.

Ví dụ

Giả sử máy chủ được liên kết có tên là Homer có một bảng trong Pets cơ sở dữ liệu có tên Cats với dữ liệu sau.

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

Kết quả:

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

Và giả sử chúng tôi muốn cập nhật một trong những tên của con mèo.

Chúng tôi có thể làm điều đó bằng cách sử dụng UPDATE truy vấn chuyển qua máy chủ được liên kết, như thế này.

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

Kết quả:

(1 row affected)

Kiểm tra kết quả

Bây giờ chúng ta có thể chạy một SELECT chuyển qua truy vấn để xem kết quả.

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

Kết quả:

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

Như dự kiến, hàng thứ ba hiện đã được cập nhật.

Một điều tôi nên chỉ ra là OPENQUERY không chấp nhận các biến cho các đối số của nó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tham gia vào hàng đầu tiên

  2. Buộc Oracle trả lại N hàng trên cùng với SKIP ĐÃ KHÓA

  3. Microsoft SQL Server 2005/2008:Kiểu dữ liệu XML so với text / varchar

  4. t-sql chọn nhận tất cả các Tháng trong một phạm vi năm

  5. Cách bật tính năng ghi dữ liệu thay đổi (CDC) trên toàn bộ bảng HOẶC bật CDC trên bảng có danh sách cột trong SQL Server