リンクサーバーでクエリを実行
このセクションでは、SQL Server に接続可能なあらゆるツールからIBM Cloud Object Storage リンクサーバーへクエリを実行する方法を説明します。
リンクサーバーからクエリを実行する場合、以下に示すように、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 IBMCloudObjectStor~ Sys].[IBMCloudObjectStorage].[Objects] WHERE Bucket = 'testBucket'
INSERT、UPDATE、およびDELETE ステートメント
一行のデータ(つまりレコードのバッチではない)を挿入、更新、または削除するには、4部構成の名前を使用する必要があります。次に例を示します。
INSERT INTO [Linked Server Name].[CData IBMCloudObjectStor~ Sys].[IBMCloudObjectStorage].[Objects] (Bucket) VALUES ('testBucket');
新規作成されたID をINSERT 操作から取得するには、sys_identity システムテーブルをクエリします。次に例を示します。
SELECT * FROM OPENQUERY([Linked Server Name], 'SELECT * FROM sys_identity');
ストアドプロシージャの実行
ストアドプロシージャを実行するには、最初にリンクサーバーの設定でRPC およびRPC Out を有効にする必要があります。続いて、次の一連のコマンドを使用してストアドプロシージャを実行できます。
DECLARE @RunStoredProcSQL VARCHAR(1000); SET @RunStoredProcSQL = 'EXEC UploadObject Bucket=''testBucket'''; EXEC (@RunStoredProcSQL) AT [Linked Server Name];