EDGE_ID_FROM_PARTS (Transact-SQL)
適用対象: SQL Server 2017 (14.x) 以降 Azure SQL データベース Azure 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_key
と rating
列を取得します。 それから、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;
;