В SQL Server можете да използвате OPENQUERY
за изпълнение на преходна заявка на свързан сървър.
OPENQUERY
обикновено се споменава в FROM
клауза на заявка, сякаш е таблица, но може да се посочи и като целева таблица на INSERT
, UPDATE
или DELETE
изявление.
Тази статия представя пример за използване на OPENQUERY
за да направите INSERT
преминаваща заявка.
Пример
Да кажем, че създадохме таблица на свързания сървър, наречен Cats
, в база данни, наречена Pets
.
Нещо като това:
EXEC ('
USE [Pets];
CREATE TABLE [dbo].[Cats](
[CatId] [int] IDENTITY(1,1) NOT NULL,
[CatName] [varchar](60) NULL
) ON [PRIMARY];
') AT Homer;
И сега искаме да вмъкнем данни с помощта на INSERT
преминаваща заявка.
Можем да го направим така:
INSERT OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats'
)
VALUES
( 'FluffDupp' ),
( 'Scratch' ),
( 'Long Tail' );
В този случай свързаният сървър се нарича Homer
, и вмъкваме три стойности в Pets.dbo.Cats
таблица.
Проверете резултатите
Вече можем да изпълним SELECT
преминаваща заявка, за да видите резултатите.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Резултат:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
Обърнете внимание, че OPENQUERY
не приема променливи за своите аргументи.