Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 Azure
banco de dados SQL no Microsoft Fabric
Adiciona uma ou mais linhas a uma tabela node ou edge do SQL Server.
Convenções de sintaxe de Transact-SQL
Sintaxe da tabela INSERT no nó
A sintaxe para inserção em uma tabela Node é a mesma de uma tabela normal.
[ WITH <common_table_expression> [ ,...n ] ]
INSERT
{
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
{
[ (column_list) ] | [(<edge_table_column_list>)]
[ <OUTPUT Clause> ]
{ VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
| derived_table
| execute_statement
| <dml_table_source>
| DEFAULT VALUES
}
}
}
[;]
<object> ::=
{
[ server_name . database_name . schema_name .
| database_name .[ schema_name ] .
| schema_name .
]
node_table_name | edge_table_name
}
<dml_table_source> ::=
SELECT <select_list>
FROM ( <dml_statement_with_output_clause> )
[AS] table_alias [ ( column_alias [ ,...n ] ) ]
[ WHERE <on_or_where_search_condition> ]
[ OPTION ( <query_hint> [ ,...n ] ) ]
<on_or_where_search_condition> ::=
{ <search_condition_with_match> | <search_condition> }
<search_condition_with_match> ::=
{ <graph_predicate> | [ NOT ] <predicate> | ( <search_condition> ) }
[ AND { <graph_predicate> | [ NOT ] <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<search_condition> ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<graph_predicate> ::=
MATCH( <graph_search_pattern> [ AND <graph_search_pattern> ] [ , ...n] )
<graph_search_pattern>::=
<node_alias> { { <-( <edge_alias> )- | -( <edge_alias> )-> } <node_alias> }
<edge_table_column_list> ::=
($from_id, $to_id, [column_list])
Arguments
Note
Este artigo descreve argumentos relacionados ao grafo SQL. Para obter uma lista completa e uma descrição dos argumentos com suporte na instrução INSERT, consulte INSERT TABLE (Transact-SQL). Para obter instruções Transact-SQL padrão, consulte INSERT TABLE (Transact-SQL).
INTO
É uma palavra-chave opcional que pode ser usada entre INSERT e a tabela de destino.
MATCH search_condition_with_match cláusula pode ser usada em uma subconsulta ao inserir em um nó ou tabela de borda. Para obter a MATCH sintaxe da instrução, consulte GRAPH MATCH (Transact-SQL).
graph_search_pattern Padrão de pesquisa fornecido para a MATCH cláusula como parte do predicado do grafo.
edge_table_column_list Os usuários devem fornecer valores para $from_id e $to_id durante a inserção em uma borda. Um erro será retornado se um valor não for fornecido ou NULLs forem inseridos nessas colunas.
Remarks
- A inserção em um nó é igual à inserção em qualquer tabela relacional. Os valores da
$node_idcoluna são gerados automaticamente. - Ao inserir linhas em uma tabela de borda, você deve fornecer valores para
$from_ide$to_idcolunas. - A BULK INSERT para a tabela de nó é a mesma que a de uma tabela relacional.
- Antes da inserção em massa em uma tabela de borda, as tabelas de nó devem ser importadas. Em seguida, os valores para
$from_ide$to_idpodem ser extraídos da coluna$node_idda tabela de nó e inseridos como bordas. - No banco de dados SQL do Fabric, o SQL Graph é permitido, mas as tabelas de nó e borda não serão espelhadas no OneLake do Fabric.
Permissions
A permissão INSERT é necessária na tabela de destino.
As permissões INSERT usam como padrão os membros da função de servidor fixa sysadmin, as funções de banco de dados fixa db_owner e db_datawriter e o proprietário da tabela. Os membros das funções sysadmin, db_owner e db_securityadmin e o proprietário da tabela podem transferir permissões para outros usuários.
Para executar INSERT com a opção BULK da função OPENROWSET, você precisa ser membro da função de servidor fixa sysadmin ou bulkadmin.
Examples
A. Inserir na tabela de nó
O exemplo a seguir cria uma Person tabela de nós e insere duas linhas nessa tabela.
-- Create person node table
CREATE TABLE dbo.Person (ID integer PRIMARY KEY, name varchar(50)) AS NODE;
-- Insert records for Alice and John
INSERT INTO dbo.Person VALUES (1, 'Alice');
INSERT INTO dbo.Person VALUES (2,'John');
B. Inserir na tabela de borda
O exemplo a seguir cria uma tabela de friend borda e insere uma borda na tabela.
-- Create friend edge table
CREATE TABLE dbo.friend (start_date DATE) AS EDGE;
-- Create a friend edge, that connect Alice and John
INSERT INTO dbo.friend VALUES ((SELECT $node_id FROM dbo.Person WHERE name = 'Alice'),
(SELECT $node_id FROM dbo.Person WHERE name = 'John'), '9/15/2011');