Sdílet prostřednictvím


CREATE TABLE (SQL Graph)

Platí pro: SQL Server 2017 (14.x) a novější verze Azure SQL Managed Instance

Vytvoří novou tabulku grafu SQL jako NODE tabulku nebo EDGE tabulku.

Poznámka:

Standardní příkazy Transact-SQL naleznete v tématu CREATE TABLE (Transact-SQL).

Transact-SQL konvence syntaxe

Syntaxe

CREATE TABLE   
    { database_name.schema_name.table_name | schema_name.table_name | table_name }
    ( { <column_definition> } 
       | <computed_column_definition>
       | <column_set_definition>
       | [ <table_constraint> ] [ ,... n ]
       | [ <table_index> ] }
          [ ,...n ]
    )   
    AS [ NODE | EDGE ]
    [ ON { partition_scheme_name ( partition_column_name )
           | filegroup
           | "default" } ]
[ ; ] 

< table_constraint > ::=
[ CONSTRAINT constraint_name ]
{
    { PRIMARY KEY | UNIQUE }
        [ CLUSTERED | NONCLUSTERED ]
        (column [ ASC | DESC ] [ ,...n ] )
        [
            WITH FILLFACTOR = fillfactor
           |WITH ( <index_option> [ , ...n ] )
        ]
        [ ON { partition_scheme_name (partition_column_name)
            | filegroup | "default" } ]
    | FOREIGN KEY
        ( column [ ,...n ] )
        REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ]
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
        [ NOT FOR REPLICATION ]
    | CONNECTION
        ( { node_table TO node_table } 
          [ , {node_table TO node_table }]
          [ , ...n ]
        )
        [ ON DELETE { NO ACTION | CASCADE } ]
    | CHECK [ NOT FOR REPLICATION ] ( logical_expression )

Arguments

Tento dokument obsahuje pouze argumenty týkající se grafu SQL. Úplný seznam a popis podporovaných argumentů najdete v tématu CREATE TABLE (Transact-SQL)

database_name
Je název databáze, ve které je tabulka vytvořena. database_name musí zadat název existující databáze. Pokud není zadáno, database_name výchozí hodnota aktuální databáze. Přihlášení k aktuálnímu připojení musí být přidružené k existujícímu ID uživatele v databázi určené database_name a toto ID uživatele musí mít oprávnění CREATE TABLE.

schema_name
Je název schématu, do kterého nová tabulka patří.

table_name
Je název uzlu nebo hraniční tabulky. Názvy tabulek musí dodržovat pravidla pro identifikátory. table_name může mít maximálně 128 znaků, s výjimkou místních dočasných názvů tabulek (názvy s předponou s jedním znaménkem čísla (#)), které nesmí překročit 116 znaků.

UZEL
Vytvoří tabulku uzlů.

EDGE
Vytvoří hraniční tabulku.

omezení tabulky
Určuje vlastnosti PRIMÁRNÍHO KLÍČE, JEDINEČNÉHO, CIZÍHO KLÍČE, OMEZENÍ PŘIPOJENÍ, OMEZENÍ CHECK nebo VÝCHOZÍ definice přidané do tabulky.

Poznámka:

Omezení CONNECTION se vztahuje pouze na typ hraniční tabulky.

ON { partition_scheme | filegroup | "default" }
Určuje schéma oddílů nebo skupinu souborů, na které je tabulka uložena. Pokud je zadán partition_scheme, tabulka je dělenou tabulkou, jejíž oddíly jsou uloženy v sadě jedné nebo více skupin souborů zadaných v partition_scheme. Pokud je zadána skupina souborů, tabulka je uložena v pojmenované skupině souborů. Skupina souborů musí existovat v databázi. Pokud je zadána hodnota default nebo pokud není zapnuto vůbec, je tabulka uložena ve výchozí skupině souborů. Mechanismus úložiště tabulky, jak je uvedeno v příkazu CREATE TABLE, nelze následně změnit.

ZAPNUTO {partition_scheme | skupina souborů | "default"}
Lze také zadat v omezení PRIMÁRNÍ KLÍČ nebo JEDINEČNÝ. Tato omezení vytvářejí indexy. Pokud je zadána skupina souborů, index se uloží do pojmenované skupiny souborů. Pokud je zadána hodnota default nebo pokud není zapnuto vůbec, index je uložen ve stejné skupině souborů jako tabulka. Pokud omezení PRIMARY KEY nebo UNIQUE vytvoří clusterovaný index, datové stránky tabulky se uloží do stejné skupiny souborů jako index. Pokud je clusterED zadán nebo omezení jinak vytvoří clusterovaný index a partition_scheme je zadána, která se liší od partition_scheme nebo skupiny souborů definice tabulky, nebo naopak, bude dodržena pouze definice omezení a druhá bude ignorována.

Poznámky

Vytvoření dočasné tabulky jako uzlu nebo hraniční tabulky se nepodporuje.

Vytvoření uzlu nebo hraniční tabulky jako dočasné tabulky se nepodporuje.

Funkce Stretch Database není podporována pro tabulku uzlů nebo okrajů.

Důležité

Funkce Stretch Database je v SQL Serveru 2022 (16.x) a Azure SQL Database zastaralá. Tato funkce bude odebrána v budoucí verzi databázového stroje. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Uzly nebo hraniční tabulky nesmí být externími tabulkami (pro tabulky grafů není podporována žádná podpora PolyBase).

Nedělený grafový uzel nebo hraniční tabulka nelze změnit na dělený grafový uzel nebo hraniční tabulku.

Examples

A. Vytvoření NODE tabulky

Následující příklad ukazuje, jak vytvořit NODE tabulku.

 CREATE TABLE Person (
        ID INTEGER PRIMARY KEY, 
        name VARCHAR(100), 
        email VARCHAR(100)
 ) AS NODE;

B. Vytvoření EDGE tabulky

Následující příklady ukazují, jak vytvořit EDGE tabulky.

 CREATE TABLE friends (
    id INTEGER PRIMARY KEY,
    start_date DATe
 ) AS EDGE;
 -- Create a likes edge table, this table does not have any user defined attributes   
 CREATE TABLE likes AS EDGE;

V dalším příkladu modeluje pravidlo, které můžou být přátelé jenom s jinými lidmi, což znamená, že tato hrana neumožňuje odkaz na žádný jiný uzel než Osoba.

/* Create friend edge table with CONSTRAINT, restricts for nodes and it direction */
CREATE TABLE dbo.FriendOf(
  CONSTRAINT cnt_Person_FriendOf_Person
    CONNECTION (dbo.Person TO dbo.Person) 
)AS EDGE;

Viz také

ALTER TABLE table_constraint
ALTER TABLE (Transact-SQL)
INSERT (SQL Graph)]
Zpracování grafů pomocí SQL Serveru 2017