Delen via


NODE_ID_FROM_PARTS (Transact-SQL)

Van toepassing op: SQL Server 2017 (14.x) en latere versies Van Azure SQL DatabaseAzure SQL Managed Instance

Retourneert de tekenweergave (JSON) van de knooppunt-id voor een bepaalde object-id en grafiek-id.

Syntaxis

NODE_ID_FROM_PARTS ( object_id, graph_id )

Arguments

object_id

Een int die de object-id voor de knooppunttabel vertegenwoordigt.

graph_id

Een bigint-waarde voor de grafiek-id voor een knooppunt.

Retourwaarde

Retourneert een nvarchar(1000) tekenweergave (JSON) van de knooppunt-id. De retourwaarde kan NULL zijn als een van de opgegeven argumenten ongeldig is.

Opmerkingen

  • De tekenweergave (JSON) van de knooppunt-id die wordt NODE_ID_FROM_PARTS geretourneerd, is een specifieke implementatiedetails en kan worden gewijzigd.
  • NODE_ID_FROM_PARTS is de enige ondersteunde manier om een geschikte tekenweergave van de knooppunt-id te maken.
  • NODE_ID_FROM_PARTS is handig voor het bulksgewijs invoegen van gegevens in een grafiektabel wanneer de brongegevens een geschikte natuurlijke of surrogaatsleutel hebben met een gegevenstype geheel getal.
  • De geretourneerde NODE_ID_FROM_PARTS waarde kan worden gebruikt om de $node_id kolom in een knooppunttabel te vullen. Het kan ook worden gebruikt om de $from_id / $to_id kolommen in een randtabel te vullen.
  • Als NODE_ID_FROM_PARTS u een geldige tekenweergave (JSON) van een knooppunt-id wilt retourneren, moet de object_id parameter overeenkomen met een bestaande knooppunttabel. De graph_id parameter kan elk geldig geheel getal zijn, maar deze hoeft niet aanwezig te zijn in die knooppunttabel. Als een van deze controles mislukt, NODE_ID_FROM_PARTS wordt NULL geretourneerd.

Voorbeelden

In het volgende voorbeeld wordt de OPENROWSET-bulkrijsetprovider gebruikt om de ID en name kolommen op te halen uit een CSV-bestand dat is opgeslagen in een Azure Storage-account. Vervolgens wordt de NODE_ID_FROM_PARTS juiste tekenweergave gemaakt voor $node_id uiteindelijke (bulksgewijs) invoegen in de Person knooppunttabel. Deze getransformeerde gegevens worden vervolgens (bulk) ingevoegd in de Person knooppunttabel.

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

Zie ook