Partilhar via


CREATE TABLE (SQL Graph)

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores Instância Gerenciada SQL do Azure

Cria uma nova tabela do SQL Graph como uma NODE ou uma EDGE tabela.

Observação

Para instruções Transact-SQL padrão, consulte CREATE TABLE (Transact-SQL).

Transact-SQL convenções de sintaxe

Sintaxe

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

Este documento lista apenas argumentos pertencentes ao gráfico SQL. Para obter uma lista completa e uma descrição dos argumentos suportados, consulte CREATE TABLE (Transact-SQL)

database_name
É o nome do banco de dados no qual a tabela é criada. database_name deve especificar o nome de um banco de dados existente. Se não for especificado, database_name assume como padrão o banco de dados atual. O login para a conexão atual deve ser associado a um ID de usuário existente no banco de dados especificado por database_name, e esse ID de usuário deve ter permissões CREATE TABLE.

schema_name
É o nome do esquema ao qual a nova tabela pertence.

table_name
É o nome do nó ou da tabela de borda. Os nomes das tabelas devem seguir as regras para identificadores. table_name pode ter no máximo 128 caracteres, exceto para nomes de tabelas temporárias locais (nomes prefixados com um único sinal numérico (#)) que não podem exceder 116 caracteres.


Cria uma tabela de nós.

EDGE
Cria uma tabela de borda.

restrição_de_tabela
Especifica as propriedades de uma restrição PRIMARY KEY, UNIQUE, FOREIGN KEY, CONNECTION, uma restrição CHECK ou uma definição DEFAULT adicionada a uma tabela.

Observação

A restrição CONNECTION aplica-se apenas a um tipo de tabela de borda.

ON { partition_scheme | grupo de ficheiros | "padrão" }
Especifica o esquema de partição ou grupo de arquivos no qual a tabela está armazenada. Se partition_scheme for especificado, a tabela deve ser uma tabela particionada cujas partições são armazenadas em um conjunto de um ou mais grupos de arquivos especificados em partition_scheme. Se o grupo de arquivos for especificado, a tabela será armazenada no grupo de arquivos nomeado. O grupo de arquivos deve existir dentro do banco de dados. Se "default" for especificado, ou se ON não for especificado, a tabela será armazenada no grupo de arquivos padrão. O mecanismo de armazenamento de uma tabela, conforme especificado em CREATE TABLE, não pode ser alterado posteriormente.

EM {partition_scheme | filegroup | "padrão"}
Também pode ser especificado em uma restrição de CHAVE PRIMÁRIA ou ÚNICA. Essas restrições criam índices. Se o grupo de arquivos for especificado, o índice será armazenado no grupo de arquivos nomeado. Se "default" for especificado, ou se ON não for especificado, o índice será armazenado no mesmo grupo de arquivos que a tabela. Se a restrição PRIMARY KEY ou UNIQUE criar um índice clusterizado, as páginas de dados da tabela serão armazenadas no mesmo grupo de arquivos que o índice. Se CLUSTERED for especificado ou se a restrição criar um índice clusterizado e for especificado um partition_scheme diferente do partition_scheme ou grupo de arquivos da definição de tabela, ou vice-versa, somente a definição de restrição será respeitada e a outra será ignorada.

Observações

Não há suporte para a criação de uma tabela temporária como nó ou tabela de borda.

Não há suporte para a criação de uma tabela de nó ou borda como uma tabela temporal.

O banco de dados Stretch não é suportado para a tabela de nó ou borda.

Importante

O Stretch Database foi preterido no SQL Server 2022 (16.x) e no Banco de Dados SQL do Azure. Esse recurso será removido em uma versão futura do Mecanismo de Banco de Dados. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

As tabelas de nós ou de borda não podem ser tabelas externas (sem suporte PolyBase para tabelas gráficas).

Uma tabela de nó/borda de gráfico não particionada não pode ser alterada em uma tabela de nó/borda de gráfico particionada.

Examples

A. Criar uma NODE tabela

O exemplo a seguir mostra como criar uma NODE tabela

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

B. Criar uma EDGE tabela

Os exemplos a seguir mostram como criar EDGE tabelas

 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;

O próximo exemplo modela uma regra de que apenas pessoas podem ser amigas de outras pessoas, o que significa que essa borda não permite referência a nenhum nó além de Pessoa.

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

Ver também

TABELA ALTER table_constraint
ALTERAR TABELA (Transact-SQL)
INSERT (Gráfico SQL)]
Processamento de gráficos com o SQL Server 2017