Aracılığıyla paylaş


INSERT (SQL Grafik)

Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

SQL Server'da bir veya tablosuna bir node veya edge daha fazla satır ekler.

Transact-SQL söz dizimi kuralları

Insert Into node table söz dizimi

Node tablosuna ekleme söz dizimi normal tabloyla aynıdır.

[ 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

Bu makalede SQL grafı ile ilgili bağımsız değişkenler açıklanmaktadır. INSERT deyiminde desteklenen bağımsız değişkenlerin tam listesi ve açıklaması için bkz. INSERT TABLE (Transact-SQL). Standart Transact-SQL deyimleri için bkz . INSERT TABLE (Transact-SQL).

INTO

ile hedef tablo arasında INSERT kullanılabilen isteğe bağlı bir anahtar sözcüktür.

MATCH search_condition_with_match yan tümcesi bir düğüme veya kenar tablosuna eklenirken bir alt sorguda kullanılabilir. Deyim söz dizimi için MATCH bkz. GRAPH KAÇINCI (Transact-SQL).

graph_search_pattern Grafik koşulunun bir parçası olarak yan tümcesine MATCH sağlanan arama düzeni.

edge_table_column_list Kullanıcıların bir kenara eklerken ve $from_id için $to_id değerler sağlaması gerekir. Bir değer sağlanmamışsa veya BU sütunlara NUL'ler eklendiğinde bir hata döndürülür.

Remarks

  • Düğüme ekleme, herhangi bir ilişkisel tabloya eklemeyle aynıdır. Sütun değerleri $node_id otomatik olarak oluşturulur.
  • Kenar tablosuna satır eklerken ve $from_id sütunları için $to_id değerler sağlamanız gerekir.
  • Düğüm tablosu için BULK ekleme, ilişkisel tabloyla aynıdır.
  • Kenar tablosuna toplu eklemeden önce düğüm tablolarının içeri aktarılması gerekir. ve $from_id değerleri $to_id daha sonra düğüm tablosunun $node_id sütunundan ayıklanabilir ve kenar olarak eklenebilir.
  • Doku SQL veritabanında SQL Graph'a izin verilir, ancak Node ve Edge tabloları Doku OneLake'e yansıtılmaz.

Permissions

Hedef tabloda INSERT izni gereklidir.

INSERT izinleri varsayılan olarak sysadmin sabit sunucu rolünün üyeleri, db_owner ve db_datawriter sabit veritabanı rolleri ve tablo sahibidir. Sysadmin, db_owner ve db_securityadmin rollerinin üyeleri ve tablo sahibi izinleri diğer kullanıcılara aktarabilir.

INSERT'i OPENROWSET işlevi BULK seçeneğiyle yürütmek için sysadmin sabit sunucu rolünün veya bulkadmin sabit sunucu rolünün üyesi olmanız gerekir.

Examples

A. Düğüm tablosuna ekle

Aşağıdaki örnek bir Person düğüm tablosu oluşturur ve bu tabloya iki satır ekler.

-- 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. Kenar tablosuna ekle

Aşağıdaki örnek bir friend kenar tablosu oluşturur ve tabloya bir kenar ekler.

-- 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');

Sonraki Adımlar