Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2017 (14.x) и более поздних версий Управляемого экземпляра
SQL Azure
Создает новую таблицу графа SQL как таблицу NODE или EDGE.
Примечание.
Сведения о стандартных инструкциях Transact-SQL см. в разделе CREATE TABLE (Transact-SQL).
Соглашения о синтаксисе Transact-SQL
Синтаксис
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 )
Аргументы
В этом документе описываются только аргументы, относящиеся к SQL Graph. Полный список и описание поддерживаемых аргументов см. в разделе CREATE TABLE (Transact-SQL).
database_name
Имя базы данных, в которой создается таблица. Параметр database_name должен указывать имя существующей базы данных. Если не указано, в качестве database_name по умолчанию выбирается текущая база данных. Имя входа для текущего соединения должно быть связано с идентификатором пользователя, существующего в базе данных, указанной аргументом database_name, а этот пользователь должен обладать разрешениями CREATE TABLE.
schema_name
Имя схемы, которой принадлежит новая таблица.
table_name
Это имя таблицы узлов или граничной таблицы. Имена таблиц должны соответствовать правилам для идентификаторов. Аргумент table_name может состоять не более чем из 128 символов, за исключением имен локальных временных таблиц (имена с префиксом из одного символа решетки #), длина которых не должна превышать 116 символов.
УЗЕЛ
Создает таблицу узлов.
ПОГРАНИЧНАЯ ЗОНА
Создает граничную таблицу.
table_constraint
Задает свойства ограничений PRIMARY KEY, UNIQUE, FOREIGN KEY, CONNECTION или CHECK либо определения DEFAULT, добавленного в таблицу.
Примечание.
Ограничение CONNECTION применяется только к типу граничной таблицы.
ON { partition_scheme | файловая группа | "default" }
Указывает схему секционирования или файловую группу, в которой хранится таблица. Если аргумент partition_scheme указан, таблица будет разбита на секции, хранимые в одной или нескольких файловых группах, указанных в аргументе partition_scheme. Если указан аргумент filegroup, таблица сохраняется в файловой группе с таким именем. Это должна быть существующая файловая группа в базе данных. Если указано значение "default" или параметр ON не определен вообще, таблица сохраняется в файловой группе по умолчанию. Механизм хранения таблицы, указанный в инструкции CREATE TABLE, изменить в дальнейшем невозможно.
ON {partition_scheme | файловая группа | "default"}
Также может указываться в ограничении PRIMARY KEY или UNIQUE. С помощью этих ограничений создаются индексы. Если указан аргумент filegroup, индекс сохраняется в файловой группе с таким именем. Если указано значение "default" или параметр ON не определен вообще, индекс сохраняется в той же файловой группе, что и таблица. Если ограничение PRIMARY KEY или UNIQUE создает кластеризованный индекс, страницы данных таблицы сохраняются в той же файловой группе, что и индекс. Если ограничение создает кластеризованный индекс (с помощью параметра CLUSTERED или другим способом), а указанный аргумент partition_scheme отличается от аргументов partition_scheme и filegroup из определения таблицы, либо, наоборот, принимается во внимание только определение ограничения, а все остальное не учитывается.
Замечания
Создание временной таблицы в качестве таблицы узлов или граничной таблицы не поддерживается.
Создание таблицы узлов или граничной таблицы в качестве временной таблицы не поддерживается.
Stretch Database не поддерживается для таблицы узлов или граничной таблицы.
Внимание
Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Таблицы узлов или граничные таблицы не могут быть внешними (поддержка PolyBase для графовых таблиц отсутствует).
Несекционированную таблицу узлов графа или граничную таблицу невозможно преобразовать в секционированную.
Примеры
А. Создание таблицы NODE
В следующем примере показано создание таблицы NODE.
CREATE TABLE Person (
ID INTEGER PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
) AS NODE;
B. Создание таблицы EDGE
В следующем примере показано создание таблиц 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;
В следующем примере моделируется правило, согласно которому только люди могут быть друзьями. Это означает, что эта граница не позволяет ссылаться на другие узлы, кроме Person.
/* 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;
См. также
ALTER TABLE table_constraint
Инструкция ALTER TABLE (Transact-SQL)
INSERT (граф SQL)
Graph Processing with SQL Server 2017 (Работа с графами в SQL Server 2017)