Condividi tramite


EDGE_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 contorno per un ID oggetto e un ID grafo specificati.

Sintassi

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Argomenti

object_id

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

graph_id

Valore bigint per l'ID grafo per un contorno.

Valore restituito

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

Osservazioni

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

Esempio

L'esempio seguente usa il provider bulk per set di righe OPENROWSET per recuperare le colonne dataset_key e rating da un file CSV archiviato in un account di archiviazione di Azure. Viene quindi usato EDGE_ID_FROM_PARTS per creare la rappresentazione dei caratteri di $edge_id usando il dataset_key del file CSV. Viene usato anche NODE_ID_FROM_PARTS due volte per creare rispettivamente le rappresentazioni di caratteri appropriate di $from_id (per la tabella nodi Person) e $to_id (per la tabella nodi Restaurant). I dati trasformati vengono quindi inseriti (bulk) nella tabella contorni 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;
;

Vedi anche