CREATE TABLE (Banco de dados SQL do Azure)

Cria uma nova tabela em Banco de dados SQL do Azure.

Importante

A implementação atual das Federações será desativada com as camadas de serviço Web e Business. Considere a implantação de soluções de fragmentação personalizada para maximizar a escalabilidade, flexibilidade e o desempenho.Para obter mais informações sobre a fragmentação personalizada, consulte Expansão de Bancos de Dados SQL do Azure.

Aplica-se a: Banco de dados SQL do Azure. Para conhecer a sintaxe do SQL Server, consulte CREATE TABLE (SQL Server).

Sintaxe

CREATE TABLE 
    [ database_name . [ schema_name ] . | schema_name . ] table_name 
    ( { <column_definition> | <computed_column_definition> 
        | <column_set_definition> } 
        [ <table_constraint> ] [ ,...n ] ) 
FEDERATED ON ( distribution_name = column_name)
[ ; ]

<column_definition> ::= 
column_name <data_type>
    [ COLLATE collation_name ] 

    [ NULL | NOT NULL ]
    [ 
        [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] 
      | [ IDENTITY [ ( seed ,increment ) ] 
    ]
  [ <column_constraint> [ ...n ] ]

  [ SPARSE ]
  
<data type> ::= 
[ type_schema_name . ] type_name 
    [ ( precision [ , scale ] | max 
] 

<column_constraint> ::= 
[ CONSTRAINT constraint_name ] 
{     { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        [ 
          WITH ( < index_option > [ , ...n ] ) 
        ] 
| [ FOREIGN KEY ] 
        REFERENCES [ schema_name . ] referenced_ table_name [ ( ref_column ) ] 
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
  | CHECK  ( logical_expression ) 
} 

<computed_column_definition> ::= 
column_name AS computed_column_expression 
[ PERSISTED [ NOT NULL ] ]
[ 
    [ CONSTRAINT constraint_name ]
    { PRIMARY KEY | UNIQUE }
        [ CLUSTERED | NONCLUSTERED ]
        [ 
          WITH ( <index_option> [ , ...n ] )
        ]
    | [ FOREIGN KEY ] 
        REFERENCES referenced_table_name [ ( ref_column ) ] 
        [ ON DELETE { NO ACTION | CASCADE } ] 
        [ ON UPDATE { NO ACTION } ] 
   [ NOT FOR REPLICATION ] 
    | CHECK ( logical_expression ) 
] 

<column_set_definition> ::= 
column_set_name XML COLUMN_SET FOR ALL_SPARSE_COLUMNS

< table_constraint > ::=
[ CONSTRAINT constraint_name ] 
{ 
    { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        (column [ ASC | DESC ] [ ,...n ] ) 
        [ 
           WITH ( <index_option> [ , ...n ] ) 
        ]
  
    | 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 } ] 

    | CHECK ( logical_expression ) 
} 

<index_option> ::=
{ 
  IGNORE_DUP_KEY = { ON | OFF } 
  | STATISTICS_NORECOMPUTE = { ON | OFF } 
}

Argumentos

Dica

Este diagrama de sintaxe demonstra os argumentos e as opções com suporte no Banco de dados SQL do Azure.

O Banco de dados SQL do Azure oferece suporte ao formato de três partes database_name**.[schema_name].**object_name quando database_name for o banco de dados atual ou database_name for tempdb, e o object_name começar com #.

O Banco de dados SQL do Azure não oferece suporte a nomes de quatro partes.

Embora as colunas SPARSE possam ser consultadas por todos os drivers de cliente com suporte pelo Banco de dados SQL do Azure, no momento, apenas o driver ODBC do Native Client do SQL Server 2008 ou posterior oferece suporte completo à compactação de valores nulos em um conjunto de resultados.

A cláusula FEDERATED ON cria a tabela como uma tabela federada em uma federação existente, e aplica a restrição de distribuição (distribution_name) para a federação à coluna da federação especificada na tabela (column_name). As tabelas federadas têm as seguintes características:

  • A coluna da federação da tabela federada só pode conter dados que confirmam o range_low inclusivo e range_high exclusivo de membro da federação.

  • O tipo de dados da coluna da federação deve corresponder exatamente ao tipo de dados definido na definição da federação.

  • Todos os índices exclusivos e clusterizados na tabela federada devem conter a coluna da federação. A ordem na qual a coluna da federação aparece no índice pode ser diferente do ordinal principal na federação.

  • Os valores de coluna da federação não podem ser atualizados para os valores fora do intervalo do membro da federação.

  • A coluna da federação não pode ser uma coluna computada persistente ou não persistente.

  • As exibições indexadas não podem ser criadas em tabelas federadas.

  • As colunas da federação não podem ter valor NULL.

  • Todas as restrições de chave estrangeira em tabelas federadas precisam incluir a coluna de federação no referenciador e nas tabelas referenciadas no mesmo ordinal na chave estrangeira. As tabelas de referência não podem ter relações de chave estrangeira com tabelas federadas. As tabelas federadas podem ter relações de chave estrangeira com tabelas de referência sem restrições.

  • Você pode descartar as tabelas criadas com a cláusula FEDERATED ON normalmente. Você também pode usar ALTER TABLE para alterar todas as propriedades de uma tabela federada exceto os atributos da federação como a chave da federação. Para alterar uma tabela de referência em uma tabela federada ou uma tabela federada em uma tabela de referência, você deverá criar novas tabelas com as propriedades desejadas e descartar a tabela existente.

  • Quando uma tabela é marcada com STATISTICS_NORECOMPUTE, as operações de federação como SPLIT não invalidam nem recalculam estatísticas. Isso pode causar problemas de plano de execução depois de operações de reparticionamento como SPLIT.

  • As tabelas federadas não oferecem suporte à propriedade de identidade.

  • As tabelas federadas não oferecem suporte ao tipo de dados de carimbo de data/hora e rowversion.

Para obter mais informações sobre os argumentos e a instrução CREATE TABLE, consulte CREATE TABLE (SQL Server).

Comentários

Como o Banco de dados SQL do Azure não oferece suporte a tabelas heap, uma tabela deve ter um índice clusterizado. Se uma tabela for criada sem uma restrição clusterizada, um índice clusterizado deverá ser criado antes que uma operação de inserção seja permitida na tabela.