Delen via


CREATE TABLE (SQL Graph)

Van toepassing op: SQL Server 2017 (14.x) en latere versies van Azure SQL Managed Instance

Hiermee maakt u een nieuwe SQL-grafiektabel als een NODE of een EDGE tabel.

Opmerking

Zie CREATE TABLE (Transact-SQL) voor standaardinstructies voor Transact-SQL.

Transact-SQL syntaxis-conventies

Syntaxis

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

In dit document worden alleen argumenten vermeld die betrekking hebben op SQL Graph. Zie CREATE TABLE (Transact-SQL) voor een volledige lijst en beschrijving van ondersteunde argumenten

database_name
Is de naam van de database waarin de tabel wordt gemaakt. database_name moet de naam van een bestaande database opgeven. Als dit niet is opgegeven, wordt database_name standaard ingesteld op de huidige database. De aanmelding voor de huidige verbinding moet zijn gekoppeld aan een bestaande gebruikers-id in de database die is opgegeven door database_name en die gebruikers-id moet CREATE TABLE-machtigingen hebben.

schema_name
Is de naam van het schema waartoe de nieuwe tabel behoort.

table_name
Is de naam van het knooppunt of de edge-tabel. Tabelnamen moeten de regels voor id's volgen. table_name mag maximaal 128 tekens lang zijn, met uitzondering van lokale tijdelijke tabelnamen (namen die zijn voorafgegaan door één nummerteken (#)) die niet langer mogen zijn dan 116 tekens.

KNOOP
Hiermee maakt u een knooppunttabel.

EDGE
Hiermee maakt u een randtabel.

tabelbeperking
Hiermee geeft u de eigenschappen van een PRIMAIRE SLEUTEL, UNIEKE, REFERERENDE SLEUTEL, VERBINDINGSbeperking, een CHECK-beperking of een STANDAARDdefinitie die aan een tabel wordt toegevoegd.

Opmerking

Verbindingsbeperking is alleen van toepassing op een edge-tabeltype.

ON { partition_scheme | bestandsgroep | "standaard" }
Hiermee geeft u het partitieschema of de bestandsgroep op waarop de tabel is opgeslagen. Als partition_scheme is opgegeven, moet de tabel een gepartitioneerde tabel zijn waarvan de partities worden opgeslagen in een set van een of meer bestandsgroepen die zijn opgegeven in partition_scheme. Als de bestandsgroep is opgegeven, wordt de tabel opgeslagen in de benoemde bestandsgroep. De bestandsgroep moet bestaan in de database. Als 'standaard' is opgegeven of als ON helemaal niet is opgegeven, wordt de tabel opgeslagen in de standaardbestandsgroep. Het opslagmechanisme van een tabel zoals opgegeven in CREATE TABLE kan vervolgens niet worden gewijzigd.

ON {partition_scheme | bestandsgroep | "standaard"}
Kan ook worden opgegeven in een PRIMAIRE SLEUTEL of UNIEKE beperking. Met deze beperkingen worden indexen gemaakt. Als de bestandsgroep is opgegeven, wordt de index opgeslagen in de benoemde bestandsgroep. Als 'standaard' is opgegeven of als ON helemaal niet is opgegeven, wordt de index opgeslagen in dezelfde bestandsgroep als de tabel. Als met de beperking PRIMAIRE SLEUTEL of UNIEK een geclusterde index wordt gemaakt, worden de gegevenspagina's voor de tabel opgeslagen in dezelfde bestandsgroep als de index. Als CLUSTERED is opgegeven of als de beperking anders een geclusterde index maakt en er een partition_scheme wordt opgegeven die verschilt van de partition_scheme of bestandsgroep van de tabeldefinitie, of omgekeerd, wordt alleen de definitie van de beperking uitgevoerd en wordt de andere genegeerd.

Opmerkingen

Het maken van een tijdelijke tabel als knooppunt of edge-tabel wordt niet ondersteund.

Het maken van een knooppunt of edge-tabel als een tijdelijke tabel wordt niet ondersteund.

Stretch-database wordt niet ondersteund voor een knooppunt- of edge-tabel.

Belangrijk

Stretch Database is afgeschaft in SQL Server 2022 (16.x) en Azure SQL Database. Deze functie wordt verwijderd in een toekomstige versie van de database-engine. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Knooppunt- of edge-tabellen kunnen geen externe tabellen zijn (geen PolyBase-ondersteuning voor grafiektabellen).

Een niet-gepartitioneerde grafiekknooppunt/edge-tabel kan niet worden gewijzigd in een gepartitioneerd grafiekknooppunt/edge-tabel.

Voorbeelden

Eén. NODE Een tabel maken

In het volgende voorbeeld ziet u hoe u een NODE tabel maakt

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

B. EDGE Een tabel maken

De volgende voorbeelden laten zien hoe u tabellen maakt EDGE

 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;

In het volgende voorbeeld wordt een regel gebruikt die alleen mensen kunnen bevriend zijn met andere personen, wat betekent dat deze rand geen verwijzing naar een ander knooppunt dan Persoon toestaat.

/* 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;

Zie ook

ALTER TABLE table_constraint
ALTER TABLE (Transact-SQL)
INSERT (SQL Graph)]
Grafiekverwerking met SQL Server 2017