Versión imprimible       Enviar     
Evaluar y enviar comentarios
TechNet
Contraer todo/Expandir todo Contraer todo
Hay además otras versiones disponibles para:
Libros en pantalla de SQL Server Compact 3.5 Service Pack 1
ALTER TABLE (SQL Server Compact)

Modifica la definición de una tabla cambiando, agregando o eliminando columnas y restricciones.

ALTER TABLE table_name
    ALTER COLUMN column_name 
   {
    type_name[({precision[.scale]})][NULL|NOT NULL]
   {DROP DEFAULT 
   | SET DEFAULT constant_expression 
   | IDENTITY [ ( seed , increment ) ]
   } 
| ADD 
   { < column_definition > | < table_constraint > } [ ,...n ] 
| DROP 
   { [ CONSTRAINT ] constraint_name 
   | COLUMN column }
] }
< column_definition > ::= 
   { column_name data_type } 
   [ [ DEFAULT constant_expression ] 
      | IDENTITY [ ( seed , increment ) ] 
   ] 
   [ROWGUIDCOL]
   [ < column_constraint > ] [ ...n ] ]
< column_constraint > ::= 
   [ NULL | NOT NULL ] 
   [ CONSTRAINT constraint_name ] 
   { 
      | { PRIMARY KEY | UNIQUE } 
      | REFERENCES ref_table [ (ref_column) ] 
      [ ON DELETE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ]
   }
< 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 | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
   }
table_name

Nombre de la tabla que se va a modificar.

ms174123.note(es-es,SQL.100).gifNota:
Los nombres de tabla deben cumplir las mismas reglas que los identificadores. El valor de table_name debe ser exclusivo dentro de la base de datos. El argumento table_name puede tener un máximo de 128 caracteres.

ALTER COLUMN

Especifica qué columna concreta se debe cambiar o modificar.

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.

data_type

Especifica el tipo de datos de la columna. Para obtener más información acerca de los tipos de datos, vea Tipos de datos.

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. Las definiciones DEFAULT pueden aplicarse a cualquier columna excepto a las definidas por la propiedad IDENTITY. Las definiciones DEFAULT desaparecen cuando la tabla se elimina. Sólo los valores constantes, por ejemplo, una cadena de caracteres o una función de fecha, se pueden utilizar como valores predeterminados.

IDENTITY

Indica que la nueva columna es una columna de identidad. Cuando se agrega una nueva fila a la tabla, Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) proporciona un valor incremental 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. Se debe especificar los dos argumentos, seed e increment, o ninguno. Si no se especifica ninguno, el valor predeterminado es (1,1).

seed

Valor utilizado para la primera fila cargada en la tabla.

increment

Valor incremental agregado al valor de identidad de la fila cargada anteriormente.

ADD

Especifica que se van a agregar una o más definiciones de columna o restricciones de tabla.

DROP { [CONSTRAINT] constraint_name| COLUMN column}

Especifica que constraint_name o column_name se deben quitar de la tabla.

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.

NULL | NOT NULL

Palabras clave que especifican si se permiten valores NULL en la columna. NULL no es exactamente una restricción, pero puede especificarse de la misma manera que NOT NULL.

CONSTRAINT

Palabra clave opcional que indica el principio de una definición de una 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 exclusivo en una base de datos. Si no se especifica el valor de constraint_name, SQL Server Compact 3.5 genera un nombre de restricción.

PRIMARY KEY

Es una restricción que garantiza la integridad de la entidad para una columna o columnas específicas utilizando un índice exclusivo. Sólo se puede crear una restricción PRIMARY KEY para cada 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. Las tablas pueden tener múltiples restricciones UNIQUE.

ms174123.note(es-es,SQL.100).gifNota:
SQL Server Compact 3.5 puede usar índices para imponer las 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 a los datos de la columna. Las restricciones FOREIGN KEY requieren que todos los valores de la columna existan en la columna especificada de la tabla de referencia.

ref_table

Nombre de la tabla a la que la restricción FOREIGN KEY hace referencia.

( ref_column [ ,... n] )

Columna o lista de columnas de la tabla a la que la restricción FOREIGN KEY hace referencia.

ON DELETE {CASCADE | NO ACTION |SET DEFAULT | SET NULL}

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. Para obtener más información, vea la sección "Notas" posteriormente en este tema.

ON UPDATE {CASCADE | NO ACTION | SET DEFAULT | SET NULL}

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. Para obtener más información, vea la sección "Notas" posteriormente en este tema.

column

Columna o lista de columnas, entre paréntesis, utilizada en las restricciones de tablas a fin de indicar las columnas empleadas para la definición de la restricción.

n

Marcador de posición que indica que el elemento anterior puede repetirse un número n de veces.

Con los argumentos ON DELETE u ON UPDATE, si se especifica la opción CASCADE, la fila se actualiza en la tabla de referencia si la fila a la que se hace referencia correspondiente también se actualiza en la tabla primaria. Si se especifica NO ACTION, SQL Server Compact 3.5 devuelve un error y se revierte la acción de actualización en la fila de la tabla primaria a la que se hace referencia.

Por ejemplo, supongamos que cuenta con dos tablas, A y B, en una base de datos. La tabla A tiene una relación referencial con la tabla B: la clave externa A.ItemID hace referencia a la clave principal B.ItemID.

Si se ejecuta una instrucción UPDATE en una fila de la tabla B y se especifica una acción ON UPDATE CASCADE para A.ItemID, SQL Server Compact 3.5 comprueba si existen una o varias filas dependientes en la tabla A. Si existe alguna, las filas dependientes de la tabla A se actualizan, ya que ésta es la fila a la que se hace referencia en la tabla B.

Del mismo modo, si se especifica NO ACTION, SQL Server Compact 3.5 devuelve un error y revierte la acción de actualización en la fila de la tabla B a la que se hace referencia cuando existe al menos una fila en la tabla A que hace referencia a la misma.

A. Cambiar los valores de inicialización e incremento en la columna de identidad

El ejemplo siguiente cambia los valores de inicialización e incremento en la columna de identidad.

CREATE TABLE MyCustomers (CustID INTEGER IDENTITY (100,1) PRIMARY KEY, CompanyName NvarChar (50));

INSERT INTO MyCustomers (CompanyName) VALUES ('A. Datum Corporation');

ALTER TABLE MyCustomers ALTER COLUMN CustId IDENTITY (200, 2);
B. Agregar un valor predeterminado a una columna

El ejemplo siguiente modifica la columna CompanyName para que tenga un valor predeterminado.

ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation'
C. Eliminar un valor predeterminado de la columna

El ejemplo siguiente modifica la columna CompanyName para que no tenga un valor predeterminado.

ALTER TABLE MyCustomers ALTER COLUMN CompanyName DROP DEFAULT
© 2009 Microsoft Corporation. Reservados todos los derechos. Condiciones de Uso | Marcas registradas | Declaración de privacidad
Page view tracker