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 DELETE
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 | Short Tail | +---------+------------+
Và giả sử chúng tôi muốn xóa một trong những con mèo khỏi cơ sở dữ liệu.
Chúng tôi có thể làm điều đó bằng cách sử dụng DELETE
truy vấn chuyển qua máy chủ được liên kết, như thế này.
DELETE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 2'
);
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 | | 3 | Short Tail | +---------+------------+
Như dự kiến, hàng thứ hai đã bị xóa và giờ chỉ còn lại hai hàng.
Một điều cần lưu ý là OPENQUERY
không chấp nhận các biến cho các đối số của nó.