EDGE_ID_FROM_PARTS (Transact-SQL)

Gäller för: SQL Server 2017 (14.x) och senare versioner Azure SQL DatabaseAzure SQL Managed InstanceSQL Database i Microsoft Fabric

Returnerar teckenrepresentationen (JSON) för kant-ID:t för ett angivet objekt-ID och graf-ID.

Syntax

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Arguments

object_id

En int som representerar objekt-ID för kanttabellen.

graph_id

Ett bigint-värde för graf-ID:t för en kant.

Returvärde

Returnerar en nvarchar(1000) teckenrepresentation (JSON) av kant-ID:t. Returvärdet kan vara NULL om något av de angivna argumenten är ogiltiga.

Anmärkningar

  • Teckenrepresentationen (JSON) för det kant-ID som returneras av EDGE_ID_FROM_PARTS är en implementeringsspecifik detalj och kan komma att ändras.
  • EDGE_ID_FROM_PARTS är det enda sättet att konstruera en lämplig teckenrepresentation (JSON) av kant-ID:t.
  • EDGE_ID_FROM_PARTS är användbart i fall som rör massinfogning av data i en gränstabell, när källdata har en lämplig naturlig nyckel eller surrogatnyckel med en heltalsdatatyp.
  • Värdet som returneras från EDGE_ID_FROM_PARTS kan användas för att fylla i $edge_id kolumnen i en kanttabell.
  • För EDGE_ID_FROM_PARTS att returnera giltig teckenrepresentation (JSON) för ett kant-ID måste parametern object_id motsvara en befintlig kanttabell. Parametern graph_id kan vara valfritt giltigt heltal, men den behöver inte finnas i den kanttabellen. Om någon av dessa kontroller misslyckas EDGE_ID_FROM_PARTS returnerar null.

Examples

I följande exempel används OPENROWSET Mass Rowset Provider för att hämta kolumnerna dataset_key och rating från en CSV-fil som lagras på ett Azure Storage-konto. Sedan används EDGE_ID_FROM_PARTS för att skapa teckenrepresentationen av $edge_id med hjälp av dataset_key från CSV-filen. Den använder också NODE_ID_FROM_PARTS två gånger för att skapa lämpliga teckenrepresentationer av $from_id (för nodtabellen Person) respektive $to_id-värden (för tabellen Restaurangnod). Dessa transformerade data infogas sedan (bulk) i kanttabellen 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;
;

Se även