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.