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


EDGE_ID_FROM_PARTS (Transact-SQL)

Область применения: SQL Server 2017 (14.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает символьное представление (JSON) идентификатора перехода для заданного идентификатора объекта и идентификатора графа.

Синтаксис

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Аргументы

object_id

Значение int, представляющее идентификатор объекта для таблицы переходов.

graph_id

Значение bigint значение идентификатора графа для перехода.

Возвращаемое значение

Возвращает представление символа nvarchar(1000) (JSON) идентификатора перехода. Возвращаемое значение может быть равно NULL, если какой-либо из предоставленных аргументов не является допустимым.

Замечания

  • Символьное представление (JSON) идентификатора перехода, возвращаемого EDGE_ID_FROM_PARTS представляет собой сведения о конкретной реализации и может быть изменено.
  • EDGE_ID_FROM_PARTS — единственный поддерживаемый способ создания подходящего символьного представления (JSON) идентификатора перехода.
  • EDGE_ID_FROM_PARTS используется в сценариях массовой вставки данных в таблицу переходов, если у исходных данных есть подходящий естественный или суррогатный ключ с целочисленным типом данных.
  • Значение, возвращаемое из EDGE_ID_FROM_PARTS, можно использовать для заполнения столбца $edge_id в таблице переходов.
  • Чтобы EDGE_ID_FROM_PARTS возвращал допустимое символьное представление (JSON) идентификатора перехода, параметр object_id должен соответствовать существующей таблице переходов. Параметр graph_id может быть любым допустимым целым числом, но он не должен существовать в этой таблице переходов. Если какая-либо из этих проверок завершается ошибкой, EDGE_ID_FROM_PARTS возвращает значение NULL.

Примеры

В следующем примере поставщик наборов строк OPENROWSET используется для извлечения столбцов dataset_key и rating из CSV-файла, хранящегося в учетной записи хранения Azure. Затем он использует EDGE_ID_FROM_PARTS для создания символьного представления $edge_id с помощью dataset_key из CSV-файла. Он также использует NODE_ID_FROM_PARTS дважды для создания соответствующих символьных представлений $from_id (для таблицы узлов Person) и $to_id (для таблицы узлов Restaurant) соответственно. Затем эти преобразованные данные (массово) вставляются в таблицу переходов likes.

INSERT INTO likes($edge_id, $from_id, $to_id, rating)
SELECT EDGE_ID_FROM_PARTS(OBJECT_ID('likes'), dataset_key) as from_id
, NODE_ID_FROM_PARTS(OBJECT_ID('Person'), ID) as from_id
, NODE_ID_FROM_PARTS(OBJECT_ID('Restaurant'), ID) as to_id
, rating
FROM OPENROWSET (BULK 'person_likes_restaurant.csv',
    DATA_SOURCE = 'staging_data_source',
    FORMATFILE = 'format-files/likes.xml',
    FORMATFILE_DATA_SOURCE = 'format_files_source',
    FIRSTROW = 2) AS staging_data;
;

См. также