In SQL Server kunt u OPENQUERY
. gebruiken om een pass-through-query uit te voeren op een gekoppelde server.
OPENQUERY
wordt vaak verwezen in de FROM
clausule van een query alsof het een tabel is, maar er kan ook naar worden verwezen als de doeltabel van een INSERT
, UPDATE
, of DELETE
verklaring.
Dit artikel geeft een voorbeeld van het gebruik van OPENQUERY
om een INSERT
. te doen pass-through-query.
Voorbeeld
Laten we zeggen dat we een tabel hebben gemaakt op de gekoppelde server genaamd Cats
, in een database genaamd Pets
.
Zoiets als dit:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
En nu willen we gegevens invoegen met een INSERT
pass-through-query.
We kunnen het als volgt doen:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
In dit geval heet de gekoppelde server Homer
, en we voegen drie waarden in de Pets.dbo.Cats
tafel.
Controleer de resultaten
We kunnen nu een SELECT
. uitvoeren pass-through-query om de resultaten te zien.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultaat:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Merk op dat OPENQUERY
accepteert geen variabelen voor zijn argumenten.