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, elobject_id
parámetro debe corresponder a una tabla de nodos existente. Elgraph_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;
;