CREATE TABLE (SQL Server Compact Edition)

Crea una nueva tabla de Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition).

Sintaxis

CREATE TABLE table_name 
   ( { < column_definition > | < table_constraint > } [ ,...n ] 
   ) 
< column_definition > ::= 
   { column_name data_type } 
   [ { DEFAULT constant_expression 
      | [ IDENTITY [ ( seed , increment ) ]
      ]
    } ] 
   [ ROWGUIDCOL ] 
   [ < column_constraint > [ ...n ] ]
< column_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ NULL | NOT NULL ] 
      | [ PRIMARY KEY | UNIQUE ] 
      | REFERENCES ref_table [ ( ref_column ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ] 
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      ]
   | FOREIGN KEY 
     ( column [ ,...n ] )
      REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }

Argumentos

  • table_name
    Nombre de la nueva tabla. Los nombres de tabla deben cumplir las mismas reglas que los identificadores. El valor de table_name debe ser único dentro de la base de datos. Un valor de table_name puede contener un máximo de 128 caracteres.
  • column_name ,
    Nombre de una columna de la tabla Los nombres de columna deben cumplir las mismas reglas que los identificadores y deben ser exclusivos en la tabla.

    [!NOTA] Los nombres de columna de las bases de datos de SQL Server Compact Edition no pueden empezar por "__sys". Por ejemplo, __sysobjects es un nombre de columna restringido.

  • data_type ,
    Especifica el tipo de datos de la columna. Para obtener información acerca de los tipos de datos, vea Tipos de datos y RDA.
  • DEFAULT ,
    Especifica el valor que se asigna a la columna cuando no se ha suministrado ningún valor de forma explícita durante una acción de inserción. Se pueden aplicar definiciones con el valor DEFAULT a cualquier columna, excepto las definidas por la propiedad IDENTITY. Las definiciones DEFAULT desaparecen cuando la tabla se elimina. Se puede utilizar como predeterminado un valor constante.
  • IDENTITY ,
    Indica que la nueva columna es una columna de identidad. Cuando se agrega una nueva fila a la tabla, SQL Server Compact Edition proporciona un valor incremental único para la columna. Las columnas de identidad se suelen utilizar junto con restricciones PRIMARY KEY para servir como identificador de fila único de la tabla. La propiedad IDENTITY sólo se puede asignar a las columnas int. Sólo se puede crear una columna de identidad para cada tabla. Las restricciones DEFAULT y los valores predeterminados enlazados no se pueden utilizar en las columnas de identidad. Debe especificar tanto el valor de inicialización como el incremento, o bien ninguno de los dos. Si no se especifica ninguno, el valor predeterminado es (1,1).
  • seed ,
    Valor utilizado para la primera fila cargada en la tabla.
  • increment ,
    Valor del incremento agregado al valor de identidad de la fila cargada anteriormente.
  • ROWGUIDCOL ,
    Indica que la nueva columna es una columna de identificador único global de fila. Sólo se puede designar una columna uniqueidentifier por tabla como columna ROWGUIDCOL. La propiedad ROWGUIDCOL sólo se puede asignar a una columna uniqueidentifier.

    ROWGUIDCOL genera valores automáticamente para las nuevas filas que se insertan en la tabla.

  • CONSTRAINT ,
    Palabra clave opcional que indica el principio de una definición de restricción PRIMARY KEY, UNIQUE o FOREIGN KEY. Las restricciones son propiedades especiales que garantizan la integridad de los datos y crean tipos especiales de índices para la tabla y sus columnas.
  • constraint_name ,
    Nombre de una restricción. El valor de constraint_name es opcional y debe ser único dentro de la base de datos. Si no se especifica el valor de constraint_name, SQL Server Compact Edition genera un nombre de restricción.
  • NULL | NOT NULL ,
    Palabras clave que especifican si se permite el uso de valores Null en la columna. NULL no es estrictamente una restricción, pero se puede especificar del mismo modo que NOT NULL.
  • PRIMARY KEY ,
    Restricción que impone exclusividad de entidad para una o varias columnas determinadas mediante un índice único. Sólo se puede crear una restricción PRIMARY KEY por tabla.
  • UNIQUE ,
    Restricción que proporciona integridad a la entidad para una columna o columnas específicas mediante un índice exclusivo. Las columnas de una restricción UNIQUE pueden ser NULL, pero sólo se permite un valor NULL por columna. Una tabla puede tener varias restricciones UNIQUE.

    [!NOTA] SQL Server Compact Edition puede usar índices para imponer restricciones PRIMARY KEY y UNIQUE. No es recomendable confiar en este comportamiento ni intentar modificar ningún índice generado como parte de una restricción.

  • FOREIGN KEY...REFERENCES ,
    Restricción que proporciona integridad referencial para los datos de la columna. Las restricciones FOREIGN KEY requieren que cada valor de la columna exista en la columna especificada en la tabla referenciada.
  • ref_table ,
    Nombre de la tabla referenciada por la restricción FOREIGN KEY.
  • ( ref_column [ ,...n ] ) ,
    Columna o lista de columnas de la tabla referenciada por la restricción FOREIGN KEY.
  • ON DELETE {CASCADE | NO ACTION} ,
    Especifica qué sucede con una fila de la tabla que se ha creado cuando dicha fila tiene una relación referencial y la fila a la que se hace referencia se elimina de la tabla primaria. El valor predeterminado es NO ACTION.

    Si se especifica CASCADE, se elimina una fila de la tabla que hace referencia cuando se elimina la fila referenciada correspondiente de la tabla primaria. Si se especifica NO ACTION, SQL Server Compact Edition devuelve un error y se revierte la acción de eliminación de la fila a la que se hace referencia en la tabla primaria.

  • ON UPDATE {CASCADE | NO ACTION}
    Especifica qué sucede con una fila de la tabla que se ha creado cuando dicha fila tiene una relación referencial y la fila a la que se hace referencia se actualiza en la tabla primaria. El valor predeterminado es NO ACTION.

    Si se especifica CASCADE, se actualiza la fila de la tabla que hace referencia cuando se actualiza la fila referenciada correspondiente en la tabla primaria. Si se especifica NO ACTION, SQL Server Compact Edition devuelve un error y se revierte la acción de actualización de la fila a la que se hace referencia en la tabla primaria.

  • column ,
    Columna o lista de columnas, entre paréntesis, que se utiliza en las restricciones de tabla para indicar las columnas que se utilizan en la definición de restricción.

Notas

Definiciones de columnas

Debe especificar al menos una definición de columna al crear una tabla.

Restricciones

  • Restricciones PRIMARY KEY
    • Una tabla sólo puede incluir una restricción PRIMARY KEY.
    • Cada PRIMARY KEY genera un índice.
    • Todas las columnas definidas en una restricción PRIMARY KEY se deben definir como NOT NULL. Si no se especifica la capacidad de aceptar valores Null, se establece la capacidad de aceptar valores Null de todas las columnas que participen en una restricción PRIMARY KEY en NOT NULL.
  • Restricciones UNIQUE
    • Cada restricción UNIQUE genera un índice.
  • Restricciones FOREIGN KEY
    • Si se especifica un valor distinto de NULL en la columna de una restricción FOREIGN KEY, el valor debe existir en la columna referenciada; de lo contrario, se devolverá un error de infracción de clave externa.
    • Las restricciones FOREIGN KEY pueden hacer referencia a otra columna de la misma tabla, lo que se denomina autorreferencia. Sin embargo, no se pueden utilizar restricciones FOREIGN KEY para crear una restricción FOREIGN KEY de autorreferencia o circular.
    • La cláusula REFERENCES de una restricción FOREIGN KEY de nivel de columna sólo puede listar una columna de referencia. Debe tener el mismo tipo de datos que la columna en la que se defina la restricción.
    • La cláusula REFERENCES de una restricción FOREIGN KEY de nivel de tabla debe tener el mismo número de columnas de referencia que el número de columnas de la lista de columnas de la restricción. El tipo de datos de cada columna de referencia también debe ser igual al de la columna correspondiente de la lista de columnas.
    • Las restricciones FOREIGN KEY sólo pueden hacer referencia a columnas de las restricciones PRIMARY KEY o UNIQUE de la tabla referenciada. Las restricciones FOREIGN KEY no pueden hacer referencia a índices únicos.
  • Información adicional sobre las restricciones
    • Un índice creado para una restricción no se puede quitar con la instrucción DROP INDEX. La restricción se debe quitar con la instrucción ALTER TABLE DROP CONSTRAINT.
    • Los nombres de restricción deben cumplir las reglas de los identificadores, excepto la que indica que el nombre no puede empezar con una almohadilla (#). Si no se indica la palabra clave CONSTRAINT y constraint_name, se asignará a la restricción un nombre generado por el sistema.
    • Si se infringe una restricción en una instrucción INSERT, UPDATE o DELETE, se detendrá la instrucción.

Definiciones DEFAULT

Una tabla sólo puede incluir una definición DEFAULT. Esta definición puede incluir valores o funciones constantes.

Reglas de aceptación de valores Null en una definición de tabla

La capacidad de aceptar valores Null de una columna determina si esa columna puede permitir un valor nulo (NULL) para sus datos. NULL es un valor distinto de cero o en blanco. Significa que no se ha especificado ninguna entrada o que se ha proporcionado un valor NULL explícito, y suele significar que se desconoce el valor o que no es aplicable.

Ejemplo

Los ejemplos siguientes muestran cómo:

  1. Crear una tabla con dos columnas y una columna de identidad como PRIMARY KEY.
  2. Crear una tabla con una columna y una restricción PRIMARY KEY.
  3. Crear una tabla con una columna que haga referencia a una columna de otra tabla.
CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))

CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)

CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))

Vea también

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition