Edit

GRAPH_ID_FROM_NODE_ID (Transact-SQL)

Applies to: SQL Server 2017 (14.x) and later versions Azure SQL Database Azure SQL Managed Instance SQL database in Microsoft Fabric

In SQL Graph tables, the GRAPH_ID_FROM_NODE_ID function returns the internal graph ID for a given node ID.

Syntax

GRAPH_ID_FROM_NODE_ID ( node_id )

Arguments

node_id

The character representation (JSON) for one of the below:

  • The $node_id pseudo-column for a node table.
  • The $from_id pseudo-column for an edge table.
  • The $to_id column for an edge table.

Return value

Returns the internal graph ID, which is a bigint.

Remarks

  • Owing to the performance overhead of parsing and validating the supplied character representation (JSON) of nodes, you should only use GRAPH_ID_FROM_NODE_ID where needed. In most cases, MATCH should be sufficient for queries over graph tables.
  • For GRAPH_ID_FROM_NODE_ID to return a value, the supplied character representation (JSON) must be valid and the named schema.table within the JSON, must be a valid node table.
  • If a graph ID is returned by the function, it's only guaranteed that it will be a valid integer. No checks are made whether the graph ID is present in the node table.
  • The data type and behavior of graph IDs are implementation specific details, and are subject to change. For example, you shouldn't assume that graph IDs in a given node table are sequential.

Graph tables were introduced in SQL Server 2017. The GRAPH_ID_FROM_NODE_ID function isn't available in SQL Server 2016 or in Fabric Data Warehouse.

Examples

The following example returns the internal graph ID for the nodes in the Person node table.

SELECT GRAPH_ID_FROM_NODE_ID($node_id)
FROM Person;

Here are the results:

...
1764
1806
19051
...