Udostępnij za pomocą


CREATE TABLE (SQL Graph)

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje usługi Azure SQL Managed Instance

Tworzy nową tabelę grafu SQL jako tabelę NODEEDGE lub .

Uwaga / Notatka

Aby uzyskać standardowe instrukcje Transact-SQL, zobacz CREATE TABLE (Transact-SQL).

Transact-SQL konwencje składni

Składnia

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

W tym dokumencie wymieniono tylko argumenty dotyczące grafu SQL. Aby uzyskać pełną listę i opis obsługiwanych argumentów, zobacz CREATE TABLE (Transact-SQL)

database_name
To nazwa bazy danych, w której jest tworzona tabela. database_name musi określić nazwę istniejącej bazy danych. Jeśli nie zostanie określony, database_name domyślne dla bieżącej bazy danych. Identyfikator logowania dla bieżącego połączenia musi być skojarzony z istniejącym identyfikatorem użytkownika w bazie danych określonej przez database_name, a identyfikator użytkownika musi mieć uprawnienia CREATE TABLE.

schema_name
To nazwa schematu, do którego należy nowa tabela.

table_name
To nazwa węzła lub tabeli krawędzi. Nazwy tabel muszą być zgodne z regułami dotyczącymi identyfikatorów. table_name może zawierać maksymalnie 128 znaków, z wyjątkiem lokalnych nazw tabel tymczasowych (nazw poprzedzonych znakiem jednokrotnym (#)), które nie mogą przekraczać 116 znaków.

WĘZEŁ
Tworzy tabelę węzłów.

EDGE
Tworzy tabelę brzegową.

ograniczenie tabeli
Określa właściwości KLUCZA PODSTAWOWEgo, UNIKATOWEGO, KLUCZA OBCEGO, ograniczenia POŁĄCZENIA, ograniczenia CHECK lub definicji DOMYŚLNEj dodanej do tabeli.

Uwaga / Notatka

Ograniczenie POŁĄCZENIA dotyczy tylko typu tabeli krawędzi.

ON { partition_scheme | filegroup | "default" }
Określa schemat partycji lub grupę plików, na której jest przechowywana tabela. Jeśli partition_scheme jest określona, tabela ma być tabelą partycjonowaną, której partycje są przechowywane w zestawie co najmniej jednej grupy plików określonej w partition_scheme. Jeśli zostanie określona grupa plików, tabela jest przechowywana w nazwie filegroup. Grupa plików musi istnieć w bazie danych. Jeśli zostanie określona wartość domyślna lub jeśli w ogóle nie zostanie określona wartość WŁ., tabela jest przechowywana w domyślnej grupie plików. Mechanizm przechowywania tabeli określony w artykule CREATE TABLE nie może zostać później zmieniony.

ON {partition_scheme | filegroup | "default"}
Można również określić w kluczu podstawowym lub unikatowym ograniczeniu. Te ograniczenia tworzą indeksy. Jeśli określono grupę plików, indeks jest przechowywany w nazwanej grupie plików. Jeśli określono wartość domyślną lub jeśli w ogóle nie określono wartości WŁĄCZONE, indeks jest przechowywany w tej samej grupie plików co tabela. Jeśli klucz podstawowy lub ograniczenie UNIQUE tworzy indeks klastrowany, strony danych dla tabeli są przechowywane w tej samej grupie plików co indeks. Jeśli parametr CLUSTERED jest określony lub ograniczenie w przeciwnym razie tworzy indeks klastrowany, a partition_scheme jest określony, że różni się od partition_scheme lub grupy plików definicji tabeli lub odwrotnie, zostanie uznane tylko definicja ograniczenia, a druga zostanie zignorowana.

Uwagi

Tworzenie tabeli tymczasowej jako węzła lub tabeli krawędzi nie jest obsługiwane.

Tworzenie węzła lub tabeli krawędzi jako tabeli czasowej nie jest obsługiwane.

Baza danych Stretch nie jest obsługiwana w przypadku tabeli węzłów ani krawędzi.

Ważne

Baza danych Stretch jest przestarzała w programie SQL Server 2022 (16.x) i usłudze Azure SQL Database. Ta funkcja zostanie usunięta w przyszłej wersji aparatu bazy danych. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Tabele węzłów lub krawędzi nie mogą być tabelami zewnętrznymi (brak obsługi technologii PolyBase dla tabel grafów).

Nie można zmienić partycjonowanego węzła grafu/tabeli krawędzi na partycjonowaną tabelę węzła/krawędzi grafu.

Przykłady

A. Tworzenie NODE tabeli

W poniższym przykładzie pokazano, jak utworzyć tabelę NODE

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

B. Tworzenie EDGE tabeli

W poniższych przykładach pokazano, jak tworzyć EDGE tabele

 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;

Następny przykład modeluje regułę, że tylko osoby mogą być przyjaciółmi z innymi osobami, co oznacza, że ta krawędź nie zezwala na odwołanie do żadnego węzła innego niż 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;

Zobacz też

ALTER TABLE table_constraint
ALTER TABLE (Transact-SQL)
INSERT (SQL Graph)]
Przetwarzanie grafu za pomocą programu SQL Server 2017