Compartilhar via


EDGE_ID_FROM_PARTS (Transact-SQL)

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores do Banco de Dados SQL do AzureBanco de Dados SQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azurebanco de dados SQL no Microsoft Fabric

Retorna a representação de caracteres (JSON) da ID da borda para determinada ID de objeto e ID de grafo.

Sintaxe

EDGE_ID_FROM_PARTS ( object_id, graph_id )

Argumentos

object_id

Um int que representa a ID de objeto da tabela de borda.

graph_id

Um valor bigint para a ID de grafo de uma borda.

Valor retornado

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

Comentários

  • A representação de caracteres (JSON) da ID de borda retornada 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 com suporte para construir uma representação de caracteres (JSON) adequada da 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 alternativa adequada com o tipo de dados inteiro.
  • O valor retornado de EDGE_ID_FROM_PARTS pode ser usado para preencher a coluna $edge_id em uma tabela de borda.
  • Para EDGE_ID_FROM_PARTS retornar uma representação de caracteres (JSON) válida de uma ID de borda, o parâmetro object_id deve corresponder a uma tabela de borda existente. O parâmetro graph_id pode ser qualquer inteiro válido, mas não precisa existir nessa tabela de borda. Se alguma dessas verificações falhar, EDGE_ID_FROM_PARTS retornará NULL.

Exemplos

O exemplo a seguir usa o Provedor de Conjuntos de Linhas em Massa OPENROWSET para recuperar as colunas dataset_key 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 dataset_key do arquivo CSV. Ele também usa NODE_ID_FROM_PARTS duas vezes para criar as representações de caracteres apropriadas de $from_id (para a tabela de nós pessoais) e os valores de $to_id (para a tabela de nós de Restaurante), respectivamente. Então, esses dados transformados são inseridos (em massa) na tabela de borda 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;
;

Confira também