sql >> Database >  >> RDS >> Sqlserver

Een INSERT Pass-Through-query uitvoeren in SQL Server

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.


  1. Wijzig het scheidingsteken in een komma bij het e-mailen van queryresultaten in SQL Server (T-SQL)

  2. Opgeslagen procedure uitvoeren in SQL Developer?

  3. Django- en postgresql-schema's

  4. SQL Server-query:snel met letterlijk maar traag met variabelen