Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2017 (14.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
SQL database em Microsoft Fabric
Adiciona uma ou mais linhas a uma node ou edge tabela no SQL Server.
Transact-SQL convenções de sintaxe
Sintaxe da tabela INSERT Into node
A sintaxe para inserir em uma tabela Node é a mesma que para uma tabela regular.
[ 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 gráfico SQL. Para obter uma lista completa e uma descrição dos argumentos suportados na instrução INSERT, consulte INSERT TABLE (Transact-SQL). Para 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 pode ser usada em uma subconsulta durante a inserção em uma tabela de nó ou borda. Para MATCH a sintaxe da instrução, consulte GRAPH MATCH (Transact-SQL).
graph_search_pattern Padrão de pesquisa fornecido à MATCH cláusula como parte do predicado gráfico.
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
- Inserir em um nó é o mesmo que inserir em qualquer tabela relacional. Os valores para a
$node_idcoluna são gerados automaticamente. - Ao inserir linhas em uma tabela de borda, você deve fornecer valores para
$from_ide$to_idcolunas. - BULK insert para tabela de nó é o mesmo que para uma tabela relacional.
- Antes de inserir em massa em uma tabela de borda, as tabelas de nós devem ser importadas. Os valores para
$from_ide$to_idpodem ser extraídos da$node_idcoluna da tabela de nós e inseridos como bordas. - No banco de dados SQL de malha, o SQL Graph é permitido, mas as tabelas de nó e borda não serão espelhadas no Fabric OneLake.
Permissions
A permissão INSERT é necessária na tabela de destino.
Permissões INSERT padrão para membros da função de servidor fixa sysadmin , as funções de banco de dados fixas 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ê deve ser membro da função de servidor fixa sysadmin ou da função de servidor fixa bulkadmin .
Examples
A. Inserir na tabela de nós
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 bordas
O exemplo a seguir cria uma friend tabela de 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');