EDGE_ID_FROM_PARTS (Transact-SQL)

Si applica a: SQL Server 2017 (14.x) e versioni successive del databaseSQL di Azure Istanza gestita di SQLdi Azure in Microsoft Fabric

Nelle tabelle grafiche SQL, la EDGE_ID_FROM_PARTS funzione restituisce la rappresentazione del carattere (JSON) dell'ID dell'arco per un dato ID oggetto e un ID del grafo.

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.

Le tabelle grafiche sono state introdotte in SQL Server 2017. La EDGE_ID_FROM_PARTS funzione non è disponibile né SQL Server 2016 né nel Fabric Data Warehouse.

Esempi

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