ODBC Driver for OData

Build 20.0.7654

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

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

リンクサーバーからクエリを実行する場合、以下に示すように、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 OData Sys].[OData].[Lead] WHERE FirstName <> 'Bartholomew'

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

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

INSERT INTO [Linked Server Name].[CData OData Sys].[OData].[Lead] (FirstName) VALUES ('Bartholomew');

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

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

バルク操作

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

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

INSERT INTO [Linked Server Name].[CData OData Sys].[OData].[Lead] ([FirstName])
SELECT [FirstName] from [CData].[dbo].[Local_Lead]

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

UPDATE [Linked Server Name].[CData OData Sys].[OData].[Lead] SET [Lead].[FirstName] = CData.dbo.[Local_Lead].[Local_FirstName]
FROM CData.dbo.[Local_Lead] INNER JOIN [Linked Server Name].[CData OData Sys].[OData].[Lead] ON CData.dbo.[Local_Lead].[Id] = [Lead].[Id]

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

DELETE FROM [Linked Server Name].[CData OData Sys].[OData].[Lead] WHERE [Id] IN (SELECT [Id] FROM CData.dbo.Local_Lead)

ストアドプロシージャの実行

ストアドプロシージャを実行するには、最初にリンクサーバーの設定でRPC およびRPC Out を有効にする必要があります。続いて、次の一連のコマンドを使用してストアドプロシージャを実行できます。

DECLARE @RunStoredProcSQL VARCHAR(1000);
SET @RunStoredProcSQL = 'EXEC Search Url=''http://mysite.com/MyOrgroot/XRMServices/2011/OrganizationData.svc/LeadSet''';
EXEC (@RunStoredProcSQL) AT [Linked Server Name];

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