sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan laver du en INSERT Pass-Through-forespørgsel i SQL Server

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.


  1. Håndtering af den samtidige anmodning, mens du fortsætter i Oracle-databasen?

  2. Hvordan eksporterer og importerer jeg en .sql-fil fra kommandolinjen med muligheder?

  3. Sammenkæd flere rækker i et array med SQL på PostgreSQL

  4. Betinget splittransformation:Eksporter data fra SQL Server til Oracle- og MySQL-databaser