CREATE TABLE (SQL Graph)

Berlaku untuk: SQL Server 2017 (14.x) dan Azure SQL Managed Instance yang lebih baru

Membuat tabel grafik SQL baru sebagai NODE tabel atau EDGE .

Catatan

Untuk pernyataan Transact-SQL standar, lihat CREATE TABLE (Transact-SQL).

Konvensi sintaks transact-SQL

Sintaksis

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 )

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

Dokumen ini hanya mencantumkan argumen yang berkaitan dengan grafik SQL. Untuk daftar lengkap dan deskripsi argumen yang didukung, lihat CREATE TABLE (Transact-SQL)

database_name
Adalah nama database tempat tabel dibuat. database_name harus menentukan nama database yang sudah ada. Jika tidak ditentukan, database_name default ke database saat ini. Login untuk koneksi saat ini harus dikaitkan dengan ID pengguna yang ada dalam database yang ditentukan oleh database_name, dan ID pengguna tersebut harus memiliki izin CREATE TABLE.

schema_name
Adalah nama skema tempat tabel baru berada.

table_name
Adalah nama simpul atau tabel tepi. Nama tabel harus mengikuti aturan untuk pengidentifikasi. table_name bisa maksimal 128 karakter, kecuali untuk nama tabel sementara lokal (nama diawali dengan tanda angka tunggal (#)) yang tidak boleh melebihi 116 karakter.

NODE
Membuat tabel simpul.

TEPI
Membuat tabel edge.

table_constraint
Menentukan properti KUNCI PRIMER, UNIK, KUNCI ASING, batasan KONEKSI, batasan CHECK, atau definisi DEFAULT yang ditambahkan ke tabel.

Catatan

Batasan KONEKSI hanya berlaku untuk jenis tabel edge.

AKTIF { partition_scheme | grup file | "default" }
Menentukan skema partisi atau grup file tempat tabel disimpan. Jika partition_scheme ditentukan, tabel akan menjadi tabel yang dipartisi yang partisinya disimpan pada satu set atau beberapa grup file yang ditentukan dalam partition_scheme. Jika grup file ditentukan, tabel disimpan dalam grup file bernama. Grup file harus ada di dalam database. Jika "default" ditentukan, atau jika ON tidak ditentukan sama sekali, tabel disimpan pada grup file default. Mekanisme penyimpanan tabel seperti yang ditentukan dalam CREATE TABLE tidak dapat diubah berikutnya.

ON {partition_scheme | grup file | "default"}
Juga dapat ditentukan dalam KUNCI PRIMER atau batasan UNIK. Batasan ini membuat indeks. Jika grup file ditentukan, indeks disimpan dalam grup file bernama. Jika "default" ditentukan, atau jika ON tidak ditentukan sama sekali, indeks disimpan dalam grup file yang sama dengan tabel. Jika BATASAN KUNCI PRIMER atau UNIK membuat indeks berkluster, halaman data untuk tabel disimpan dalam grup file yang sama dengan indeks. Jika CLUSTERED ditentukan atau batasan jika tidak membuat indeks berkluster, dan partition_scheme ditentukan bahwa berbeda dari partition_scheme atau grup file definisi tabel, atau sebaliknya, hanya definisi batasan yang akan dihormati, dan yang lain akan diabaikan.

Keterangan

Membuat tabel sementara karena tabel simpul atau tepi tidak didukung.

Membuat simpul atau tabel edge sebagai tabel temporal tidak didukung.

Database stretch tidak didukung untuk tabel simpul atau tepi.

Penting

Stretch Database tidak digunakan lagi di SQL Server 2022 (16.x) dan Azure SQL Database. Fitur ini akan dihapus dalam versi Mesin Database di masa mendatang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.

Tabel simpul atau tepi tidak boleh tabel eksternal (tidak ada dukungan PolyBase untuk tabel grafik).

Tabel node/edge grafik yang tidak dipartisi tidak dapat diubah menjadi tabel simpul/tepi grafik yang dipartisi.

Contoh

J. Membuat NODE tabel

Contoh berikut menunjukkan cara membuat NODE tabel

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

B. Membuat EDGE tabel

Contoh berikut menunjukkan cara membuat EDGE tabel

 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;

Contoh berikutnya memodelkan aturan bahwa hanya orang yang dapat berteman dengan orang lain, yang berarti tepi ini tidak mengizinkan referensi ke simpul apa pun selain Orang.

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

Lihat Juga

ALTER TABLE table_constraint
ALTER TABLE (Transact-SQL)
INSERT (SQL Graph)]
Pemrosesan grafik dengan SQL Server 2017