ODBC Driver for Microsoft Dynamics 365 Business Central

Build 24.0.8963

クエリの実行

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

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

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

SELECT ステートメント

新しいレコードを作成するには:
SELECT * FROM [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] WHERE Name <> 'MyAccount'
Note:データソースが大文字と小文字を区別する識別子をサポートしている場合、大文字と小文字が異なるだけの同名のテーブルを参照することはできません(例:同じスキーマのAccount とACCOUNT)。SQL Server では識別子を大文字と小文字の区別なく扱うため、1つのスキーマに複数存在する同名のテーブルはSQL Server のプロトコルとは根本的に互換性がありません。

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

書き込み可能なデータベースに対して一行のデータを挿入、更新、または削除するには、4部構成の名前を使用します。次に例を示します。

INSERT INTO [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] (Name) VALUES ('MyAccount');

バルク操作

書き込みを許可しているデータソースに対してバルク操作を実行するには、次のような構文を使用します:

VALUES リストの代わりに、SELECT クエリを使用してバルクINSERT を実行するには:

INSERT INTO [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] ([Name])
SELECT [Name] from [CData].[dbo].[Local_Accounts]
ローカルテーブルでJOIN を使用してバルクUPDATE を実行するには:
UPDATE [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] SET [Accounts].[Name] = CData.dbo.[Local_Accounts].[Local_Name]

FROM CData.dbo.[Local_Accounts] INNER JOIN [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] ON CData.dbo.[Local_Accounts].[AccountId] = [Accounts].[AccountId]
sub-SELECT クエリでIN フィルタを使用してバルクDELETE を実行するには:
DELETE FROM [Linked Server Name].[CData D365BusinessCentral Sys].[D365BusinessCentral].[Accounts] WHERE [AccountId] IN (SELECT [AccountId] FROM CData.dbo.Local_Accounts)

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

ストアドプロシージャを実行する前に、最初にリンクサーバーの設定でRPC およびRPC Out を有効にする必要があります。 RPC およびRPC Out が有効になったら、以下のコマンドを使用してストアドプロシージャを実行します。

DECLARE @RunStoredProcSQL VARCHAR(1000);
SET @RunStoredProcSQL = 'EXEC GetOAuthAccessToken AuthMode=''APP''';
EXEC (@RunStoredProcSQL) AT [Linked Server Name];

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.8963