Listado completo de tutoriales
83 - Agregar y eliminar campos ( alter table - add - drop) |
"alter table" permite modificar la estructura de una tabla.
Podemos utilizarla para agregar, modificar y eliminar campos de una tabla.
Para agregar un nuevo campo a una tabla empleamos la siguiente sintaxis básica:
alter table NOMBRETABLA add NOMBRENUEVOCAMPO DEFINICION;
En el siguiente ejemplo agregamos el campo "cantidad" a la tabla "libros", de tipo tinyint, que acepta valores nulos:
alter table libros add cantidad tinyint;
Puede verificarse la alteración de la estructura de la tabla ejecutando el procedimiento almacenado "sp_columns".
SQL Server no permite agregar campos "not null" a menos que se especifique un valor por defecto:
alter table libros add autor varchar(20) not null default 'Desconocido';
En el ejemplo anterior, se agregó una restricción "default" para el nuevo campo, que puede verificarse ejecutando el procedimiento almacenado "sp_helpconstraint".
Al agregar un campo puede especificarse que sea "identity" (siempre que no exista otro campo identity).
Para eliminar campos de una tabla la sintaxis básica es la siguiente:
alter table NOMBRETABLA drop column NOMBRECAMPO;
En el siguiente ejemplo eliminamos el campo "precio" de la tabla "libros":
alter table libros drop column precio;
No pueden eliminarse los campos que son usados por un índice o tengan restricciones. No puede eliminarse un campo si es el único en la tabla.
Podemos eliminar varios campos en una sola sentencia:
alter table libros drop column editorial,edicion;
Ingresemos el siguiente lote de comandos en el SQL Server Management Studio:
if object_id('libros') is not null
drop table libros;
create table libros(
titulo varchar(30),
editorial varchar(15),
edicion datetime,
precio decimal(6,2)
);
go
insert into libros (titulo,editorial,precio)
values ('El aleph','Emece',25.50);
-- Agregamos el campo "cantidad" a la tabla "libros", de tipo tinyint,
-- que acepta valores nulos:
alter table libros
add cantidad tinyint;
exec sp_columns libros;
-- Agregamos un campo "codigo" a la tabla "libros", de tipo int con el
-- atributo "identity":
alter table libros
add codigo int identity;
-- Intentamos agregar un campo llamado "autor" de tipo varchar(30)
-- que NO acepte valores nulos (genera error):
alter table libros
add autor varchar(30) not null;
-- Agregar un campo llamado "autor" de tipo varchar(20) pero con
-- un valor por defecto:
alter table libros
add autor varchar(20) not null default 'Desconocido';
-- Eliminamos el campo "precio" de la tabla "libros":
alter table libros
drop column precio;
exec sp_columns libros;
-- Intentamos eliminar un campo con restricciones (genera error) :
alter table libros
drop column autor;
-- Eliminamos varios campos en una sola sentencia:
alter table libros
drop column editorial,edicion;