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ó.