CREATE TABLE (Database di SQL Azure)

Crea una nuova tabella nel Database SQL di Azure.

Importante

L'implementazione corrente delle federazioni verrà ritirata con i livelli del servizio Web e Business. Considerare la distribuzione delle soluzioni di partizionamento orizzontale personalizzate per massimizzare la scalabilità, la flessibilità e le prestazioni.Per ulteriori informazioni sul partizionamento orizzontale personalizzato, vedere Scalabilità orizzontale dei database SQL di Azure.

Si applica a: Database SQL di Azure. Per la sintassi di SQL Server, vedere CREATE TABLE (SQL Server).

Sintassi

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 } 
}

Argomenti

Nota

In questo diagramma di sintassi vengono illustrati gli argomenti e le opzioni supportati nel Database SQL di Azure .

Database SQL di Azure supporta il formato del nome in tre parti database_name**.[schema_name].**object_name dove database_name è il database corrente o database_name è tempdb e object_name inizia con #.

Database SQL di Azure non supporta i nomi in quattro parti.

Mentre è possibile eseguire query sulle colonne SPARSE attraverso i driver client supportati dal Database SQL di Azure, attualmente solo il driver ODBC del client nativo di SQL Server 2008 o successivo fornisce il supporto completo per la compressione dei valori Null in un set di risultati.

La clausola FEDERATED ON consente di creare la tabella come tabella federata all'interno di una federazione esistente e di applicare il vincolo di distribuzione (distribution_name) per la federazione alla colonna della federazione specificata nella tabella (column_name). Le tabelle federate presentano le caratteristiche seguenti:

  • La colonna della federazione della tabella federata può contenere solo i dati conformi al valore range_low incluso e range_high escluso del membro della federazione.

  • Il tipo di dati della colonna della federazione deve corrispondere esattamente al tipo di dati definito nella definizione della federazione.

  • Tutti gli indici univoci e cluster sulla tabella federata devono contenere la colonna della federazione. L'ordine in cui la colonna della federazione viene visualizzata nell'indice può essere diverso dall'ordinale della chiave nella federazione.

  • I valori della colonna della federazione non possono essere aggiornati ai valori esterni all'intervallo del membro della federazione.

  • La colonna della federazione non può essere una colonna calcolata persistente o non persistente.

  • Le viste indicizzate non possono essere create nelle tabelle federate.

  • Le colonne della federazione non ammettono i valori Null.

  • Tutti i vincoli di chiave esterna nelle tabelle federate devono includere la colonna della federazione sia nel referrer sia nelle tabelle a cui viene fatto riferimento in corrispondenza dello stesso ordinale nella chiave esterna. Le tabelle di riferimento non possono presentare relazioni di chiave esterna con le tabelle federate. Le tabelle federate possono presentare relazioni di chiave esterna con le tabelle di riferimento senza limitazioni.

  • È possibile eliminare le tabelle create con la clausola FEDERATED ON. È inoltre possibile utilizzare ALTER TABLE per modificare le proprietà di una tabella federata, tranne gli attributi della federazione come la chiave. Per modificare una tabella di riferimento in una tabella federata o una tabella federata in una tabella di riferimento, è necessario creare nuove tabelle con le proprietà desiderate ed eliminare la tabella esistente.

  • Quando una tabella viene contrassegnata con STATISTICS_NORECOMPUTE, le operazioni della federazione come SPLIT non invalidano né ricalcolano le statistiche. Questo potrebbe essere causa di problemi a livello del piano di esecuzione dopo operazioni di ripartizionamento come SPLIT.

  • Le tabelle federate non supportano la proprietà identity.

  • Le tabelle federate non supportano i tipi di dati timestamp e rowversion.

Per altre informazioni sugli argomenti e sull'istruzione CREATE TABLE, vedere CREATE TABLE (SQL Server).

Osservazioni

Poiché nel Database SQL di Azure le tabelle heap non sono supportate, una tabella deve disporre di un indice cluster. Se una tabella viene creata senza un vincolo cluster, è necessario creare un indice cluster prima che sia consentita un'operazione di inserimento sulla tabella.