NODE_ID_FROM_PARTS (Transact-SQL)

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores de Azure SQL Database Azure SQL Instancia administrada

Devuelve la representación de caracteres (JSON) del identificador de nodo para un identificador de objeto y un identificador de grafo especificados.

Sintaxis

NODE_ID_FROM_PARTS ( object_id, graph_id )

Argumentos

object_id

Un valor int que representa el identificador de objeto de la tabla de nodos.

graph_id

Valor bigint para el identificador de grafo de un nodo.

Valor devuelto

Devuelve una representación de caracteres nvarchar(1000) (JSON) del identificador de nodo. El valor devuelto puede ser NULL si alguno de los argumentos proporcionados no es válido.

Comentarios

  • La representación de caracteres (JSON) del identificador de nodo devuelto por NODE_ID_FROM_PARTS es un detalle específico de la implementación y está sujeto a cambios.
  • NODE_ID_FROM_PARTS es la única manera admitida de construir una representación de caracteres adecuada del identificador de nodo.
  • NODE_ID_FROM_PARTS resulta útil para la inserción masiva de datos en una tabla de grafos, cuando los datos de origen tienen una clave natural o suplente adecuada con un tipo de datos entero.
  • El valor devuelto desde NODE_ID_FROM_PARTS se puede usar para rellenar la $node_id columna en una tabla de nodos. También se puede usar para rellenar las $from_id / $to_id columnas de una tabla perimetral.
  • Para NODE_ID_FROM_PARTS que devuelva una representación de caracteres válida (JSON) de un identificador de nodo, el object_id parámetro debe corresponder a una tabla de nodos existente. El graph_id parámetro puede ser cualquier entero válido, pero no necesita existir en esa tabla de nodos. Si se produce un error en alguna de estas comprobaciones, NODE_ID_FROM_PARTS devuelve NULL.

Ejemplos

En el ejemplo siguiente se usa el proveedor de conjuntos de filas masivas OPENROWSET para recuperar las ID columnas y name de un archivo CSV almacenado en una cuenta de Azure Storage. A continuación, se usa NODE_ID_FROM_PARTS para crear la representación de caracteres adecuada de $node_id para la inserción eventual (masiva) en la tabla de Person nodos. A continuación, estos datos transformados se insertan (masivamente) en la tabla de nodos Person.

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

Vea también