EDGE_ID_FROM_PARTS (Transact-SQL)

适用于: SQL Server 2017 (14.x) 及更高版本 Azure SQL 数据库Azure SQL 托管实例

返回给定对象 ID 和图形 ID 的边缘 ID 的字符表示形式 (JSON)。

语法

EDGE_ID_FROM_PARTS ( object_id, graph_id )

参数

object_id

表示边缘表的对象 ID 的 int。

graph_id

边缘图形 ID 的 bigint 值。

返回值

返回边缘 ID 的 nvarchar(1000) 字符表示形式 (JSON)。 如果任何提供的参数无效,则返回值可以为 NULL。

注解

  • EDGE_ID_FROM_PARTS 返回的边缘 ID 的字符表示形式 (JSON) 是特定于实现的详细信息,可能会更改。
  • EDGE_ID_FROM_PARTS 是构造边缘 ID 的适当字符表示形式 (JSON) 的唯一支持方式。
  • 当源数据具有整数数据类型的合适自然键或代理键时,EDGE_ID_FROM_PARTS 在涉及将数据批量插入边缘表的情况下非常有用。
  • EDGE_ID_FROM_PARTS 返回的值可用于填充边缘表中的 $edge_id 列。
  • 若要 EDGE_ID_FROM_PARTS 返回边缘 ID 的有效字符表示形式 (JSON),object_id 参数必须与现有边缘表相对应。 graph_id 参数可以是任何有效的整数,但不需要存在于该边缘表中。 如果其中任何检查失败,则 EDGE_ID_FROM_PARTS 返回 NULL。

示例

以下示例使用 OPENROWSET BULK 行集提供程序从 Azure 存储帐户中存储的 CSV 文件中检索 dataset_keyrating 列。 然后它使用 EDGE_ID_FROM_PARTS,通过 CSV 文件中的 dataset_key 创建 $edge_id 的字符表示形式。 它还使用 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;
;

另请参阅