CREATE TABLE (Base de datos SQL de Azure)

Crea una nueva tabla en Base de datos SQL de Azure.

Importante

La implementación actual de federaciones se retirará con los niveles de servicio Web y Business. Considere la posibilidad de implementar soluciones personalizadas de particionamiento para maximizar la escalabilidad, la flexibilidad y el rendimiento.Para obtener más información acerca del particionamiento personalizado, vea Ampliar Bases de datos SQL de Windows Azure.

Se aplica a: Base de datos SQL de Azure. Para obtener la sintaxis de SQL Server, vea CREATE TABLE (SQL Server).

Sintaxis

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

Nota

Este diagrama de sintaxis muestra los argumentos y opciones admitidos en Base de datos SQL de Azure.

Base de datos SQL de Azure admite el formato de nombre de tres partes database_name**.[schema_name].**object_name cuando database_name es la base de datos actual o database_name es tempdb y object_name empieza por #.

Base de datos SQL de Azure no admite nombres de cuatro partes.

Mientras que las columnas SPARSE pueden ser consultadas por todos los controladores de cliente que admite Base de datos SQL de Azure, actualmente solo el controlador ODBC de SQL Server 2008 Native Client o superior proporciona compatibilidad total para la compresión de valores NULL en un conjunto de resultados.

La cláusula FEDERATED ON crea la tabla como una tabla federada en una federación existente, y aplica la restricción de distribución (distribution_name) para la federación a la columna de federación especificada de la tabla (column_name). Las tablas federadas tienen las características siguientes:

  • La columna de federación de la tabla federada solo puede contener datos válidos para los miembros de federación range_low (inclusivo) y range_high (exclusivo).

  • El tipo de datos de la columna de federación debe coincidir exactamente con el especificado en la definición de federación.

  • Todos los índices clúster y únicos de la tabla federada deben contener la columna de federación. El orden en el que aparece la columna de federación en el índice puede ser diferente del ordinal de clave de la federación.

  • Los valores de columna de federación no se pueden actualizar a valores situados fuera del intervalo de miembros de federación.

  • La columna de federación no puede ser una columna calculada persistente o no persistente.

  • No se pueden crear vistas indizadas en tablas federadas.

  • Las columnas de federación no pueden aceptar valores NULL.

  • Todas las restricciones de clave externa de las tablas federadas deben incluir la columna de federación tanto en las tablas de origen de referencia como en las tablas a las que se hace referencia con el mismo ordinal en la clave externa. Las tablas de referencia no pueden tener relaciones de clave externa con tablas federadas. Las tablas federadas pueden tener relaciones de clave externa con tablas de referencia sin restricciones.

  • Puede eliminar tablas creadas con la cláusula FEDERATED ON normalmente. También puede utilizar ALTER TABLE para cambiar todas las propiedades de una tabla federada excepto los atributos de federación como la clave de federación. Para convertir una tabla de referencia en una tabla federada o una tabla federada en una tabla de referencia, es necesario crear nuevas tablas con las propiedades deseadas y quitar la tabla existente.

  • Cuando una tabla se marca con STATISTICS_NORECOMPUTE, las operaciones de federación como SPLIT no invalidan ni vuelven a calcular las estadísticas. Esto puede ocasionar problemas en el plan de ejecución tras operaciones de repartición como SPLIT.

  • Las tablas federadas no admiten la propiedad de identidad.

  • Las tablas federadas no admiten el tipo de datos timestamp y rowversion.

Para obtener más información acerca de los argumentos y de la instrucción CREATE TABLE, vea CREATE TABLE (SQL Server).

Comentarios

Dado que Base de datos SQL de Azure no admite las tablas del montón, una tabla debe tener un índice clúster. Si una tabla se crea sin una restricción clúster, se debe crear un índice clúster para poder realizar una operación de inserción en la tabla.