EDGE_ID_FROM_PARTS (Transact-SQL)

適用対象: SQL Server 2017 (14.x) 以降 Azure SQL DatabaseAzure SQL Managed Instance

指定されたオブジェクト ID とグラフ ID に対するエッジ ID の文字表現 (JSON) を返します。

構文

EDGE_ID_FROM_PARTS ( object_id, graph_id )

引数

object_id

エッジ テーブルのオブジェクト ID を表す int

graph_id

エッジのグラフ ID の bigint 値。

戻り値

エッジ ID の nvarchar(1000) の文字表現 (JSON) を返します。 指定された引数のいずれかが無効な場合、戻り値は NULL になります。

注釈

  • EDGE_ID_FROM_PARTS によって返されるエッジ ID の文字表現 (JSON) は実装に固有の詳細であり、変更される可能性があります。
  • EDGE_ID_FROM_PARTS は、エッジ ID の適切な文字表現 (JSON) を構築するためにサポートされている唯一の方法です。
  • EDGE_ID_FROM_PARTS は、ソース データに整数データ型の適切なナチュラル キーまたは代理キーがあるときに、エッジ テーブルにデータを一括挿入する場合に便利です。
  • EDGE_ID_FROM_PARTS から返された値を使って、エッジ テーブルの $edge_id 列を設定できます。
  • EDGE_ID_FROM_PARTS からエッジ ID の有効な文字表現 (JSON) が返されるためには、object_id パラメーターが既存のエッジ テーブルに対応している必要があります。 graph_id パラメーターには任意の有効な整数を指定できますが、そのエッジ テーブルにそれが存在している必要はありません。 これらのチェックのいずれかが失敗した場合、EDGE_ID_FROM_PARTS は NULL を返します。

次の例では、OPENROWSET BULK 行セット プロバイダーを使って、Azure ストレージ アカウントに格納されている CSV ファイルから dataset_keyrating 列を取得します。 それから、EDGE_ID_FROM_PARTS を使い、CSV ファイルの dataset_key を使って $edge_id の文字表現を作成します。 また、NODE_ID_FROM_PARTS を 2 回使って、それぞれで $from_id (Person ノード テーブルの場合) と $to_id 値 (Restaurant ノード テーブルの場合) の適切な文字表現を作成します。 その後、この変換されたデータは、likes エッジ テーブルに (一括) 挿入されます。

INSERT INTO likes($edge_id, $from_id, $to_id, rating)
SELECT EDGE_ID_FROM_PARTS(OBJECT_ID('likes'), dataset_key) as from_id
, NODE_ID_FROM_PARTS(OBJECT_ID('Person'), ID) as from_id
, NODE_ID_FROM_PARTS(OBJECT_ID('Restaurant'), ID) as to_id
, rating
FROM OPENROWSET (BULK 'person_likes_restaurant.csv',
    DATA_SOURCE = 'staging_data_source',
    FORMATFILE = 'format-files/likes.xml',
    FORMATFILE_DATA_SOURCE = 'format_files_source',
    FIRSTROW = 2) AS staging_data;
;

関連項目