Trong SQL Server, bạn có thể sử dụng OPENQUERY
để thực hiện một truy vấn chuyển qua trên một 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 một INSERT
truy vấn chuyển qua.
Ví dụ
Giả sử chúng tôi đã tạo một bảng trên máy chủ được liên kết có tên là Cats
, trong cơ sở dữ liệu có tên Pets
.
Một cái gì đó như thế này:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
Và bây giờ chúng tôi muốn chèn dữ liệu bằng INSERT
truy vấn chuyển qua.
Chúng ta có thể làm như thế này:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
Trong trường hợp này, máy chủ được liên kết được gọi là Homer
và chúng tôi đang chèn ba giá trị vào Pets.dbo.Cats
bảng.
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 | Long Tail | +---------+-----------+
Lưu ý rằng OPENQUERY
không chấp nhận các biến cho các đối số của nó.