Teilen über


EDGE_ID_FROM_PARTS (Transact-SQL)

Gilt für: SQL Server 2017 (14.x) und höher Azure SQL-Datenbank Azure SQL verwaltete Instanz

Gibt die Zeichendarstellung (JSON) der Edge-ID für eine bestimmte Objekt-ID und Graph-ID zurück.

Syntax

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Argumente

object_id

Ein int-Wert, der die Objekt-ID für die Edgetabelle darstellt.

graph_id

Ein bigint-Wert für die Graph-ID eines Edges.

Rückgabewert

Gibt eine nvarchar(1000)-Zeichendarstellung (JSON) der Edge-ID zurück. Der Rückgabewert kann NULL sein, wenn eines der angegebenen Argumente ungültig ist.

Bemerkungen

  • Die Zeichendarstellung (JSON) der von EDGE_ID_FROM_PARTS zurückgegebenen Edge-ID ist eine implementierungsspezifische und damit veränderliche Information.
  • EDGE_ID_FROM_PARTS stellt die einzige unterstützte Möglichkeit dar, eine geeignete Zeichendarstellung (JSON) der Edge-ID zu erstellen.
  • EDGE_ID_FROM_PARTS ist nützlich für die Masseneinfügung von Daten in eine Edgetabelle, wenn die Quelldaten über einen geeigneten natürlichen oder Ersatzschlüssel mit einem ganzzahligen Datentyp verfügen.
  • Der von EDGE_ID_FROM_PARTS zurückgegebene Wert kann verwendet werden, um die Spalte $edge_id in einer Edgetabelle aufzufüllen.
  • Damit EDGE_ID_FROM_PARTS eine gültige Zeichendarstellung (JSON) einer Edge-ID zurückgeben kann, muss der object_id-Parameter einer vorhandenen Edgetabelle entsprechen. Der graph_id-Parameter kann eine beliebige gültige ganze Zahl sein, die aber in dieser Edgetabelle nicht vorhanden sein darf. Wenn eine dieser Überprüfungen zu einem Fehler führt, gibt EDGE_ID_FROM_PARTS NULL zurück.

Beispiele

Im folgenden Beispiel wird der OPENROWSET-Massenrowsetanbieter verwendet, um die Spalten dataset_key und rating aus einer CSV-Datei abzurufen, die in einem Azure Storage-Konto gespeichert ist. Anschließend wird EDGE_ID_FROM_PARTS verwendet, um die Zeichendarstellung von $edge_id mit dem dataset_key aus der CSV-Datei zu erstellen. Außerdem wird NODE_ID_FROM_PARTS zweimal verwendet, um die entsprechenden Zeichendarstellungen von $from_id-Werten (für die Knotentabelle „Person“) und $to_id-Werten (für die Knotentabelle „Restaurant“) zu erstellen. Diese transformierten Daten werden dann in die Edgetabelle likes eingefügt (Masseneinfügung).

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;
;

Weitere Informationen