NODE_ID_FROM_PARTS (Transact-SQL)
Область применения: SQL Server 2017 (14.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает символьное представление (JSON) идентификатора узла для заданного идентификатора объекта и идентификатора графа.
Синтаксис
NODE_ID_FROM_PARTS ( object_id, graph_id )
Аргументы
object_id
Значение int, представляющее идентификатор объекта для таблицы узлов.
graph_id
Значение bigint значение идентификатора графа для узла.
Возвращаемое значение
Возвращает представление символа nvarchar(1000) (JSON) идентификатора узла. Возвращаемое значение может быть равно NULL, если какой-либо из предоставленных аргументов не является допустимым.
Замечания
- Символьное представление (JSON) идентификатора узла, возвращаемого
NODE_ID_FROM_PARTS
представляет собой сведения о конкретной реализации и может быть изменено. NODE_ID_FROM_PARTS
— единственный поддерживаемый способ создания подходящего символьного представления идентификатора узла.NODE_ID_FROM_PARTS
используется для массовой вставки данных в графовую таблицу, если у исходных данных есть подходящий естественный или суррогатный ключ с целочисленным типом данных.- Значение, возвращаемое из
NODE_ID_FROM_PARTS
, можно использовать для заполнения столбца$node_id
в таблице узлов. Его также можно использовать для заполнения столбцов$from_id
/$to_id
в граничной таблице. - Чтобы
NODE_ID_FROM_PARTS
возвращал допустимое символьное представление (JSON) идентификатора узла, параметрobject_id
должен соответствовать существующей таблице узлов. Параметрgraph_id
может быть любым допустимым целым числом, но он не должен существовать в этой таблице узлов. Если какая-либо из этих проверок завершается ошибкой,NODE_ID_FROM_PARTS
возвращает значение NULL.
Примеры
В следующем примере поставщик наборов строк OPENROWSET используется для извлечения столбцов ID
и name
из CSV-файла, хранящегося в учетной записи хранения Azure. Затем он использует NODE_ID_FROM_PARTS
для создания соответствующего символьного представления $node_id
для последующей (массовой) вставки в таблицу узлов Person
. Затем эти преобразованные данные (массово) вставляются в таблицу узлов 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;
;