sql >> Databáze >  >> RDS >> Sqlserver

Jak provést INSERT Pass-Through Query v SQL Server

V SQL Server můžete použít OPENQUERY k provedení předávacího dotazu na propojeném serveru.

OPENQUERY se běžně odkazuje v FROM klauzule dotazu, jako by to byla tabulka, ale lze na ni také odkazovat jako na cílovou tabulku INSERT , UPDATE nebo DELETE prohlášení.

Tento článek představuje příklad použití OPENQUERY pro provedení INSERT předávací dotaz.

Příklad

Řekněme, že jsme na propojeném serveru vytvořili tabulku s názvem Cats , v databázi nazvané Pets .

Něco jako toto:

EXEC ('
    USE  [Pets];
    CREATE TABLE [dbo].[Cats](
        [CatId] [int] IDENTITY(1,1) NOT NULL,
        [CatName] [varchar](60) NULL
    ) ON [PRIMARY];
') AT Homer;

A nyní chceme vložit data pomocí INSERT předávací dotaz.

Můžeme to udělat takto:

INSERT OPENQUERY (
    Homer, 
    'SELECT CatName FROM Pets.dbo.Cats'
    )
VALUES 
    ( 'FluffDupp' ),
    ( 'Scratch' ),
    ( 'Long Tail' );

V tomto případě se propojený server nazývá Homer a do Pets.dbo.Cats vkládáme tři hodnoty tabulka.

Zkontrolujte výsledky

Nyní můžeme spustit SELECT předávací dotaz, abyste viděli výsledky.

SELECT * FROM OPENQUERY (
    Homer, 
    'SELECT * FROM Pets.dbo.Cats'
    );

Výsledek:

+---------+-----------+
| CatId   | CatName   |
|---------+-----------|
| 1       | FluffDupp |
| 2       | Scratch   |
| 3       | Long Tail |
+---------+-----------+

Všimněte si, že OPENQUERY nepřijímá proměnné pro své argumenty.


  1. O dopadu celostránkových zápisů

  2. Různé způsoby, jak naplnit uživatele MySQL

  3. Upgrade na nejnovější Jira s nejnovější verzí serveru MariaDB

  4. Oznamujeme podporu MariaDB 10.2 – ClusterControl 1.5