NODE_ID_FROM_PARTS (Transact-SQL)
Gilt für: SQL Server 2017 (14.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
Gibt die Zeichendarstellung (JSON) der Knoten-ID für eine bestimmte Objekt-ID und Graph-ID zurück.
Syntax
NODE_ID_FROM_PARTS ( object_id, graph_id )
Argumente
object_id
Ein int-Wert, der die Objekt-ID für die Knotentabelle darstellt.
graph_id
Ein bigint-Wert für die Graph-ID eines Knotens.
Rückgabewert
Gibt eine nvarchar(1000)-Zeichendarstellung (JSON) der Knoten-ID zurück. Der Rückgabewert kann NULL sein, wenn eines der angegebenen Argumente ungültig ist.
Bemerkungen
- Die Zeichendarstellung (JSON) der von
NODE_ID_FROM_PARTS
zurückgegebenen Knoten-ID ist eine implementierungsspezifische und damit veränderliche Information. NODE_ID_FROM_PARTS
stellt die einzige unterstützte Möglichkeit dar, eine geeignete Zeichendarstellung der Knoten-ID zu erstellen.NODE_ID_FROM_PARTS
ist nützlich für die Masseneinfügung von Daten in eine Graphtabelle, wenn die Quelldaten über einen geeigneten natürlichen oder Ersatzschlüssel mit einem ganzzahligen Datentyp verfügen.- Der von
NODE_ID_FROM_PARTS
zurückgegebene Wert kann verwendet werden, um die Spalte$node_id
in einer Knotentabelle aufzufüllen. Er kann auch verwendet werden, um die Spalten$from_id
/$to_id
in einer Edgetabelle aufzufüllen. - Damit
NODE_ID_FROM_PARTS
eine gültige Zeichendarstellung (JSON) einer Knoten-ID zurückgeben kann, muss derobject_id
-Parameter einer vorhandenen Knotentabelle entsprechen. Dergraph_id
-Parameter kann eine beliebige gültige ganze Zahl sein, die aber in dieser Knotentabelle nicht vorhanden sein darf. Wenn eine dieser Überprüfungen zu einem Fehler führt, gibtNODE_ID_FROM_PARTS
NULL zurück.
Beispiele
Im folgenden Beispiel wird der OPENROWSET-Massenrowsetanbieter verwendet, um die Spalten ID
und name
aus einer CSV-Datei abzurufen, die in einem Azure Storage-Konto gespeichert ist. Anschließend wird NODE_ID_FROM_PARTS
verwendet, um die entsprechende Zeichendarstellung von $node_id
für mögliche (Massen-)Einfügungen in die Knotentabelle Person
zu erstellen. Diese transformierten Daten werden dann in die Knotentabelle Person
eingefügt (Masseneinfügung).
INSERT INTO Person($node_id, ID, [name])
SELECT NODE_ID_FROM_PARTS(OBJECT_ID('Person'), ID) as node_id, ID, [name]
FROM OPENROWSET (BULK 'person_0_0.csv',
DATA_SOURCE = 'staging_data_source',
FORMATFILE = 'format-files/person.xml',
FORMATFILE_DATA_SOURCE = 'format_files_source',
FIRSTROW = 2) AS staging_data;
;