I SQL Server kan du använda OPENQUERY
för att utföra en genomkopplingsfråga på en länkad server.
OPENQUERY
refereras ofta till i FROM
sats i en fråga som om den vore en tabell, men den kan också refereras till som måltabellen för en INSERT
, UPDATE
, eller DELETE
uttalande.
Den här artikeln presenterar ett exempel på hur du använder OPENQUERY
för att göra en INSERT
genomkopplingsfråga.
Exempel
Låt oss säga att vi skapade en tabell på den länkade servern som heter Cats
, i en databas som heter Pets
.
Något så här:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
Och nu vill vi infoga data med en INSERT
genomkopplingsfråga.
Vi kan göra så här:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
I det här fallet kallas den länkade servern Homer
, och vi infogar tre värden i Pets.dbo.Cats
bord.
Kontrollera resultaten
Vi kan nu köra en SELECT
genomgångsfråga för att se resultaten.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Resultat:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Observera att OPENQUERY
accepterar inte variabler för sina argument.