W SQL Server możesz użyć OPENQUERY
aby wykonać zapytanie przekazujące na połączonym serwerze.
OPENQUERY
jest często przywoływany w FROM
klauzula zapytania tak, jakby była tabelą, ale można się do niej również odwoływać jako tabelę docelową INSERT
, UPDATE
lub DELETE
oświadczenie.
Ten artykuł przedstawia przykład użycia OPENQUERY
zrobić INSERT
zapytanie przekazujące.
Przykład
Załóżmy, że stworzyliśmy tabelę na połączonym serwerze o nazwie Cats
, w bazie danych o nazwie Pets
.
Coś takiego:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
A teraz chcemy wstawić dane za pomocą INSERT
zapytanie przekazujące.
Możemy to zrobić tak:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
W tym przypadku połączony serwer nazywa się Homer
i wstawiamy trzy wartości do Pets.dbo.Cats
tabela.
Sprawdź wyniki
Możemy teraz uruchomić SELECT
zapytanie przekazujące, aby zobaczyć wyniki.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Wynik:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Zwróć uwagę, że OPENQUERY
nie akceptuje zmiennych dla swoich argumentów.