EDGE_ID_FROM_PARTS (Transact-SQL)
Aplica-se a: SQL Server 2017 (14.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
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âmetroobject_id
deve corresponder a uma tabela de borda existente. O parâmetrograph_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;
;