Condividi tramite


NODE_ID_FROM_PARTS (Transact-SQL)

Si applica a: SQL Server 2017 (14.x) e versioni successive Azure SQL DatabaseIstanza gestita di SQL di Azure

Restituisce la rappresentazione di caratteri (JSON) dell'ID nodo per un ID oggetto e un ID grafo specificati.

Sintassi

NODE_ID_FROM_PARTS ( object_id, graph_id )

Argomenti

object_id

Valore int che rappresenta l'ID oggetto per la tabella nodi.

graph_id

Valore bigint per l'ID grafo per un nodo.

Valore restituito

Restituisce una rappresentazione di caratteri nvarchar(1000) (JSON) dell'ID nodo. Il valore restituito può essere NULL se uno degli argomenti forniti non è valido.

Osservazioni

  • La rappresentazione di caratteri (JSON) dell'ID del nodo restituito da NODE_ID_FROM_PARTS è un dettaglio specifico dell'implementazione ed è soggetta a modifiche.
  • NODE_ID_FROM_PARTS è l'unico modo supportato per creare una rappresentazione di caratteri appropriata dell'ID nodo.
  • NODE_ID_FROM_PARTS è utile per l'inserimento bulk di dati in una tabella grafo, quando i dati di origine hanno una chiave naturale o surrogata appropriata con un tipo di dati Integer.
  • Il valore restituito da NODE_ID_FROM_PARTS può essere usato per popolare la colonna $node_id in una tabella nodi. Può essere usato anche per popolare le colonne $from_id / $to_id in una tabella bordi.
  • Affinché NODE_ID_FROM_PARTS restituisca una rappresentazione di caratteri (JSON) valida di un ID nodo, il parametro object_id deve corrispondere a una tabella nodi esistente. Il parametro graph_id può essere qualsiasi numero intero valido, ma non deve necessariamente esistere in quella tabella nodi. Se uno di questi controlli non riesce, NODE_ID_FROM_PARTS restituisce NULL.

Esempio

L'esempio seguente usa il provider bulk per set di righe OPENROWSET per recuperare le colonne ID e name da un file CSV archiviato in un account di archiviazione di Azure. Usa quindi NODE_ID_FROM_PARTS per creare la rappresentazione di caratteri appropriata di $node_id per l'inserimento finale (bulk) nella tabella nodi Person. I dati trasformati vengono quindi inseriti (bulk) nella tabella nodi 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;
;

Vedi anche