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
に3つの値を挿入しています テーブル。
結果を確認する
これで、SELECT
を実行できます 結果を確認するためのパススルークエリ。
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
結果:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
OPENQUERY
に注意してください 引数に変数を受け入れません。