Поделиться через


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

См. также