NODE_ID_FROM_PARTS (Transact-SQL)

S’applique à : SQL Server 2017 (14.x) et versions ultérieures d’Azure SQL DatabaseAzure SQL Managed InstanceSQL database dans Microsoft Fabric

Dans les tables de graphes SQL, la NODE_ID_FROM_PARTS fonction retourne la représentation en caractères (JSON) de l’ID de nœud pour un ID d’objet donné et un ID de graphe donnés.

Syntaxe

NODE_ID_FROM_PARTS ( object_id, graph_id )

Arguments

object_id

Entier représentant l’ID d’objet de la table de nœud.

graph_id

Valeur bigint de l’ID de graphe d’un nœud.

Valeur retournée

Retourne une représentation en caractères (JSON) nvarchar(1000) de l’ID de nœud. La valeur renvoyée peut être NULL si l’un des arguments fournis n’est pas valide.

Notes

  • La représentation en caractères (JSON) de l’ID de nœud retourné par NODE_ID_FROM_PARTS est un détail spécifique de l’implémentation qui est susceptible de changer.
  • NODE_ID_FROM_PARTS est la seule méthode prise en charge pour construire une représentation en caractères appropriée de l’ID de nœud.
  • NODE_ID_FROM_PARTS s’avère utile à l’insertion en bloc de données dans une table de graphe, quand les données sources ont une clé naturelle ou de substitution appropriée avec un type de données entier.
  • La valeur renvoyée par NODE_ID_FROM_PARTS peut être utilisée pour renseigner la colonne $node_id dans une table de nœud. Elle peut aussi être utilisée pour remplir les colonnes $from_id / $to_id dans une table d’arête.
  • Pour que NODE_ID_FROM_PARTS retourne une représentation en caractères valide (JSON) d’un ID de nœud, le paramètre object_id doit correspondre à une table de nœud existante. Le paramètre graph_id peut être n’importe quel entier valide, mais il n’a pas besoin d’exister dans cette table de nœud. Si l’une de ces vérifications échoue, NODE_ID_FROM_PARTS retourne NULL.

Les tables graphiques ont été introduites dans SQL Server 2017. La NODE_ID_FROM_PARTS fonction n'est pas disponible en SQL Server 2016 ni en Fabric Data Warehouse.

Exemples

L’exemple suivant utilise le fournisseur d’ensembles de lignes OPENROWSET pour récupérer les colonnes ID et name à partir d’un fichier CSV stocké sur un compte de stockage Azure. Il utilise NODE_ID_FROM_PARTS ensuite pour créer la représentation en caractères appropriée de $node_id pour une insertion (en bloc) ultérieure dans la table de nœud Person. Ces données transformées sont alors insérées (en bloc) dans la table de nœud Person.

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