NODE_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 do nó para determinada ID de objeto e ID de grafo.

Sintaxe

NODE_ID_FROM_PARTS ( object_id, graph_id )

Argumentos

object_id

Um int que representa a ID de objeto da tabela de nós.

graph_id

Um valor bigint para a ID de grafo de um nó.

Valor retornado

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

Comentários

  • A representação de caractere (JSON) da ID do nó retornada por NODE_ID_FROM_PARTS é um detalhe específico da implementação e está sujeita a alterações.
  • NODE_ID_FROM_PARTS é a única maneira com suporte para construir uma representação de caracteres adequada da ID do nó.
  • NODE_ID_FROM_PARTS é útil para a inserção em massa de dados em uma tabela de grafo, quando os dados de origem têm uma chave natural ou alternativa adequada com o tipo de dados inteiro.
  • O valor retornado de NODE_ID_FROM_PARTS pode ser usado para preencher a coluna $node_id em uma tabela de nós. Ele também pode ser usado para preencher as colunas $from_id / $to_id em uma tabela de borda.
  • Para NODE_ID_FROM_PARTS retornar uma representação de caracteres (JSON) válida de uma ID de nó, o parâmetro object_id deve corresponder a uma tabela de nós existente. O parâmetro graph_id pode ser qualquer inteiro válido, mas não precisa existir nessa tabela de nós. Se alguma dessas verificações falhar, NODE_ID_FROM_PARTS retornará NULL.

Exemplos

O exemplo a seguir usa o Provedor de Conjuntos de Linhas em Massa OPENROWSET para recuperar as colunas ID e name de um arquivo CSV armazenado em uma conta de Armazenamento do Azure. Em seguida, ele usa NODE_ID_FROM_PARTS para criar a representação de caracteres apropriada de $node_id para uma eventual inserção (em massa) na tabela de nós Person. Então, esses dados transformados são inseridos (em massa) na tabela de nós Person.

INSERT INTO Person($node_id, ID, [name])
SELECT NODE_ID_FROM_PARTS(OBJECT_ID('Person'), ID) as node_id, ID, [name]
FROM OPENROWSET (BULK 'person_0_0.csv',
    DATA_SOURCE = 'staging_data_source',
    FORMATFILE = 'format-files/person.xml',
    FORMATFILE_DATA_SOURCE = 'format_files_source',
    FIRSTROW = 2) AS staging_data;
;

Confira também