I SQL Server kan du bruge OPENQUERY
for at udføre en pass-through-forespørgsel på en forbundet server.
OPENQUERY
refereres almindeligvis til i FROM
klausul af en forespørgsel, som om den var en tabel, men den kan også refereres til som måltabellen for en INSERT
, UPDATE
eller DELETE
erklæring.
Denne artikel præsenterer et eksempel på brug af OPENQUERY
at lave en INSERT
pass-through-forespørgsel.
Eksempel
Lad os sige, at vi oprettede en tabel på den linkede server kaldet Cats
, i en database kaldet Pets
.
Noget som dette:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
Og nu vil vi indsætte data ved hjælp af en INSERT
pass-through-forespørgsel.
Vi kan gøre det sådan her:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
I dette tilfælde kaldes den linkede server Homer
, og vi indsætter tre værdier i Pets.dbo.Cats
tabel.
Tjek resultaterne
Vi kan nu køre en SELECT
pass-through-forespørgsel for at se resultaterne.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultat:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Bemærk, at OPENQUERY
accepterer ikke variabler for sine argumenter.