Partilhar via


EDGE_ID_FROM_PARTS (Transact-SQL)

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores Azure SQL DatabaseAzure SQL Managed InstanceSQL database em Microsoft Fabric

Retorna a representação de caracteres (JSON) da ID de borda para uma determinada ID de objeto e ID de gráfico.

Sintaxe

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Arguments

object_id

Um int que representa o ID do objeto para a tabela de borda.

graph_id

Um valor bigint para o ID do gráfico de uma borda.

Valor de retorno

Retorna uma representação de caracteres (JSON) nvarchar(1000) do ID de borda. O valor de retorno pode ser NULL se qualquer um dos argumentos fornecidos for inválido.

Observações

  • A representação de caracteres (JSON) do ID de borda retornado por EDGE_ID_FROM_PARTS é um detalhe específico da implementação e está sujeita a alterações.
  • EDGE_ID_FROM_PARTS é a única maneira suportada de construir uma representação de caractere adequada (JSON) do ID de borda.
  • EDGE_ID_FROM_PARTS é útil em casos que envolvem a inserção em massa de dados em uma tabela de borda, quando os dados de origem têm uma chave natural ou substituta adequada com um tipo de dados inteiro.
  • O valor retornado de pode ser usado para preencher a EDGE_ID_FROM_PARTS coluna em uma tabela de $edge_id borda.
  • Para EDGE_ID_FROM_PARTS retornar uma representação de caractere válida (JSON) de um ID de borda, o object_id parâmetro deve corresponder a uma tabela de borda existente. O graph_id parâmetro pode ser qualquer número inteiro válido, mas não precisa existir nessa tabela de borda. Se qualquer uma dessas verificações falhar, EDGE_ID_FROM_PARTS retornará NULL.

Examples

O exemplo a seguir usa o Provedor de Conjunto de Linhas em Massa OPENROWSET para recuperar as dataset_key colunas e rating de um arquivo CSV armazenado em uma conta de Armazenamento do Azure. Em seguida, ele usa EDGE_ID_FROM_PARTS para criar a representação de caracteres de $edge_id, usando o dataset_key do arquivo CSV. Ele também usa NODE_ID_FROM_PARTS duas vezes para criar as representações de caracteres apropriadas dos valores $from_id (para a tabela do nó Pessoa) e $to_id (para a tabela do nó Restaurante), respectivamente. Esses dados transformados são então (em massa) inseridos na tabela de likes borda.

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

Consulte também