CData ODBC Driver for PostgreSQL 2019J - Online Help

リンクサーバーでクエリを実行

CData ODBC Driver for PostgreSQL 2019J - Build 19.0.7354

このセクションでは、SQL Server に接続可能なあらゆるツールからPostgreSQL リンクサーバーへクエリを実行する方法を説明します。

リンクサーバーからクエリを実行する場合、以下に示すように、4部構成の名前フォーマットを使用する必要があります。

[<Linked Server Name>].[<DSN Name>].[<Schema Name (normally but not always the service name)>].[<Table Name>]

説明:

  • Linked Server Name は、作成したリンクサーバーの名前です。
  • DSN Name は、データソースの名前です。
  • Schema Name は、システムスキーマまたはユーザー定義のスキーマの名前です。
  • Table Name は、データのコピー元のテーブルの名前です。

SELECT ステートメント

新しいレコードを作成するには:

SELECT * FROM [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] WHERE ShipCountry = 'USA'

INSERT、UPDATE、およびDELETE ステートメント

一行のデータ(つまりレコードのバッチではない)を挿入、更新、または削除するには、4部構成の名前を使用する必要があります。次に例を示します。

INSERT INTO [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] (ShipCountry) VALUES ('USA');

新規作成されたID をINSERT 操作から取得するには、sys_identity システムテーブルをクエリします。次に例を示します。

SELECT * FROM OPENQUERY([Linked Server Name], 'SELECT * FROM sys_identity');

バルク操作

バルク操作を実行するには、次のような構文を使用できます:

VALUES リストの代わりに、SELECT クエリを使用してバルクINSERT を実行できます。

INSERT INTO [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] ([ShipCountry])
SELECT [ShipCountry] from [CData].[dbo].[Local_Orders]

ローカルテーブルでJOIN を使用して、バルクUPDATE を実行できます。

UPDATE [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] SET [Orders].[ShipCountry] = CData.dbo.[Local_Orders].[Local_ShipCountry]
FROM CData.dbo.[Local_Orders] INNER JOIN [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] ON CData.dbo.[Local_Orders].[Id] = [Orders].[Id]

sub-SELECT クエリでIN フィルタを使用して、バルクDELETE を実行できます。

DELETE FROM [Linked Server Name].[CData PostgreSQL Sys].[PostgreSQL].[Orders] WHERE [Id] IN (SELECT [Id] FROM CData.dbo.Local_Orders)

 
 
Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 19.0.7354.0