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