Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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';
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;
go
9- Verifique la eliminación:
exec sp_columns empleados;
Hemos visto que "alter table" permite modificar la estructura de una tabla.
También podemos utilizarla para modificar campos de una tabla.
- campos que son parte de índices o tienen restricciones, a menos que el cambio
no afecte al índice o a la restricción, por ejemplo, se puede ampliar la longitud de
un campo de tipo caracter.
- campos que afecten a los datos existentes cuando una tabla contiene registros
(ejemplo: un campo contiene valores nulos y se pretende redefinirlo como "not
null"; un campo int guarda un valor 300 y se pretende modificarlo a tinyint, etc.).
Servidor de SQL Server instalado en forma local.
go
-- Modificamos el campo "titulo" para que acepte una cadena más larga y
-- no admita valores nulos:
alter table libros
alter column titulo varchar(40) not null;
3- Controle la modificación:
sp_columns empleados;
10- Intente agregar un registro con el valor por defecto para "ciudad":
insert into empleados values(3,'33333333','Juan Perez','Sarmiento
856',default,500,4);
No se puede porque el campo acepta 10 caracteres y el valor por defecto
tiene 12 caracteres.
11- Modifique el campo "ciudad" sin que afecte la restricción dándole una
longitud de 15 caracteres.
sp_columns empleados;
Agregar campos y restricciones (alter table)
Agregamos a la tabla "libros", el campo "codigo" de tipo int identity not null y una
restricción "primary key" con índice no agrupado:
alter table libros
add codigo int identity not null
constraint PK_libros_codigo primary key nonclustered;