Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op: SQL Server 2017 (14.x) en latere versies 
Van Azure SQL Database
Azure SQL Managed Instance
SQL Database in Microsoft Fabric Preview
Voegt een of meer rijen toe aan een node of edge meer tabellen in SQL Server.
              
              
              Transact-SQL syntaxis-conventies
INSERT Into node table syntaxis
De syntaxis voor het invoegen in een Node-tabel is hetzelfde als voor een gewone tabel.
[ 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
In dit artikel worden argumenten beschreven die betrekking hebben op SQL Graph. Zie INSERT TABLE (Transact-SQL)voor een volledige lijst en beschrijving van ondersteunde argumenten in de instructie INSERT TABLE. Zie INSERT TABLE (Transact-SQL) voor standaardinstructies voor Transact-SQL.
INTO
Is een optioneel trefwoord dat kan worden gebruikt tussen INSERT en de doeltabel.
              
              
              MATCH search_condition_with_match component kan worden gebruikt in een subquery tijdens het invoegen in een knooppunt of edge-tabel. Zie GRAPH MATCH (Transact-SQL) voor MATCH de syntaxis van de instructie.
              graph_search_pattern Zoekpatroon dat is opgegeven voor MATCH component als onderdeel van het graafpredicaat.
              edge_table_column_list Gebruikers moeten waarden opgeven voor $from_id en $to_id tijdens het invoegen in een rand. Er wordt een fout geretourneerd als er geen waarde is opgegeven of NULL's worden ingevoegd in deze kolommen.
Remarks
- Invoegen in een knooppunt is hetzelfde als het invoegen in een relationele tabel. Waarden voor de $node_idkolom worden automatisch gegenereerd.
- Terwijl u rijen in een randtabel invoegt, moet u waarden voor $from_iden$to_idkolommen opgeven.
- BULK invoegen voor knooppunttabel is hetzelfde als voor een relationele tabel.
- Voordat u bulksgewijs invoegt in een edge-tabel, moeten de knooppunttabellen worden geïmporteerd. Waarden voor $from_iden$to_idkunnen vervolgens worden geëxtraheerd uit de$node_idkolom van de knooppunttabel en ingevoegd als randen.
- In Fabric SQL Database is SQL Graph toegestaan, maar knooppunt- en Edge-tabellen worden niet gespiegeld naar Fabric OneLake.
Permissions
Insert-machtiging is vereist voor de doeltabel.
INSERT-machtigingen zijn standaard ingesteld op leden van de vaste serverrol sysadmin , de db_owner en db_datawriter vaste databaserollen en de eigenaar van de tabel. Leden van de systeembeheerder, db_owner en de db_securityadmin rollen en de eigenaar van de tabel kan machtigingen overdragen aan andere gebruikers.
Als u INSERT wilt uitvoeren met de functie BULK van de functie OPENROWSET, moet u lid zijn van de vaste serverfunctie sysadmin of van de vaste serverfunctie bulkadmin .
Examples
A. Invoegen in knooppunttabel
In het volgende voorbeeld wordt een Person knooppunttabel gemaakt en worden twee rijen in die tabel ingevoegd.
-- 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. Invoegen in randtabel
In het volgende voorbeeld wordt een friend randtabel gemaakt en wordt een rand in de tabel ingevoegd.
-- 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');