Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2017 (14.x) и более поздних версий
базы данных SQL
Azure Для Управляемого экземпляра
SQL Azureв Microsoft Fabric
Добавляет одну или несколько строк в таблицу node или edge таблицу в SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис таблицы INSERT в узел
Синтаксис вставки в таблицу узлов совпадает с синтаксисом ставки в обычную таблицу.
[ 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])
Arguments
Note
В этой статье описываются аргументы, связанные с графом SQL. Полный список и описание поддерживаемых аргументов в инструкции INSERT см. в разделе INSERT TABLE (Transact-SQL). Сведения о стандартных инструкциях Transact-SQL см. в разделе INSERT TABLE (Transact-SQL).
INTO
Необязательное ключевое слово, которое можно использовать между INSERT и целевой таблицей.
MATCH предложение search_condition_with_match можно использовать в вложенных запросах при вставке в таблицу узлов или граничных таблиц. Синтаксис MATCH инструкции см. в статье GRAPH MATCH (Transact-SQL).
graph_search_pattern шаблон поиска, MATCH предоставленный предложением в рамках предиката графа.
edge_table_column_list Пользователи должны предоставлять значения для $from_id и $to_id при вставке в край. Ошибка возвращается, если значение не указано или NULLs вставляется в эти столбцы.
Remarks
- Вставка в таблицу узлов аналогична вставке в любую реляционную таблицу. Значения столбца
$node_idсоздаются автоматически. - При вставке строк в граничную таблицу необходимо указать значения и
$from_id$to_idстолбцы. - Операция вставки с параметром BULK в таблицу узлов аналогична вставке в реляционную таблицу.
- Перед массовой вставкой в граничную таблицу необходимо импортировать таблицы узлов. Затем значения для
$from_idи$to_idможно извлечь из столбца$node_idтаблицы узлов и вставить в виде границ. - В базе данных SQL Fabric допускается sql Graph, но таблицы Node и Edge не будут зеркально отображаться в Fabric OneLake.
Permissions
Требуется разрешение INSERT на целевую таблицу.
Разрешения INSERT назначаются по умолчанию членам предопределенной роли сервера sysadmin, предопределенных ролей базы данных db_owner и db_datawriter, а также владельцу таблицы. Члены ролей sysadmin, db_owner и db_securityadmin, а также владелец таблицы могут передавать разрешения другим пользователям.
Чтобы выполнить инструкцию INSERT с параметром BULK функции OPENROWSET, необходимо быть членом предопределенной роли сервера sysadmin или bulkadmin.
Examples
A. Вставка в таблицу узлов
В следующем примере создается Person таблица узлов и вставляется две строки в таблицу.
-- 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. Вставка в граничную таблицу
В следующем примере создается граничная friend таблица и вставляется ребра в таблицу.
-- 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');