SISIPKAN (SQL Graph)
Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed Instance
Menambahkan satu atau beberapa baris ke node
tabel atau edge
dalam SQL Server.
SINTAKS tabel simpul INSERT Into
Sintaks untuk menyisipkan ke dalam tabel Simpul sama dengan tabel biasa.
[ 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])
Argumen
Catatan
Artikel ini menjelaskan argumen yang terkait dengan grafik SQL. Untuk daftar lengkap dan deskripsi argumen yang didukung dalam pernyataan INSERT, lihat INSERT TABLE (Transact-SQL). Untuk pernyataan Transact-SQL standar, lihat INSERT TABLE (Transact-SQL).
INTO
Adalah kata kunci opsional yang dapat digunakan antara INSERT
dan tabel target.
MATCH
search_condition_with_match klausa dapat digunakan dalam subkueri saat menyisipkan ke dalam tabel simpul atau tepi. Untuk MATCH
sintaks pernyataan, lihat GRAPH MATCH (Transact-SQL).
graph_search_pattern Pola pencarian disediakan untuk MATCH
klausul sebagai bagian dari predikat grafik.
edge_table_column_list Pengguna harus menyediakan nilai untuk $from_id
dan $to_id
saat menyisipkan ke tepi. Kesalahan dikembalikan jika nilai tidak disediakan atau NULL disisipkan ke dalam kolom ini.
Keterangan
- Menyisipkan ke dalam simpul sama dengan menyisipkan ke dalam tabel relasional apa pun. Nilai untuk
$node_id
kolom dibuat secara otomatis. - Saat Anda menyisipkan baris ke dalam tabel tepi, Anda harus menyediakan nilai untuk
$from_id
kolom dan$to_id
. - Sisipan MASSAL untuk tabel simpul sama dengan tabel relasional.
- Sebelum menyisipkan secara massal ke dalam tabel tepi, tabel simpul harus diimpor. Nilai untuk
$from_id
dan$to_id
kemudian dapat diekstraksi dari$node_id
kolom tabel simpul dan disisipkan sebagai tepi.
Izin
Izin INSERT diperlukan pada tabel target.
Izin INSERT default untuk anggota peran server tetap sysadmin , peran database tetap db_owner dan db_datawriter , dan pemilik tabel. Anggota peran sysadmin, db_owner, dan db_securityadmin , dan pemilik tabel dapat mentransfer izin ke pengguna lain.
Untuk menjalankan INSERT dengan opsi BULK fungsi OPENROWSET, Anda harus menjadi anggota peran server tetap sysadmin atau peran server tetap bulkadmin .
Contoh
A. Sisipkan ke dalam tabel simpul
Contoh berikut membuat Person
tabel simpul dan menyisipkan dua baris ke dalam tabel tersebut.
-- 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. Sisipkan ke dalam tabel tepi
Contoh berikut membuat friend
tabel tepi dan menyisipkan tepi ke dalam tabel.
-- 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');
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk