CREATE, ALTER y DROP: administrar el ciclo de vida de un objeto
Las consultas trabajan con objetos: estructuras con nombre definidas dentro de la base, como tablas, vistas, procedimientos, funciones e índices. CREATE, ALTER y DROP representan tres momentos distintos de su ciclo de vida.
Estas instrucciones cambian el esquema, la definición estructural de la base. Deben tratarse como despliegues controlados: cambios preparados y aplicados de forma repetible, no como pruebas casuales sobre un ambiente compartido.
La idea
CREATE: agregar un objeto
CREATE define un objeto que todavía no existe. La definición cambia según se trate de una tabla, vista, procedimiento, función u otro tipo admitido.
CREATE TipoDeObjeto dbo.NombreObjeto
-- Definición;
ALTER: modificar la definición
ALTER cambia un objeto existente sin sustituir el significado de la operación por una eliminación y creación automáticas.
ALTER TipoDeObjeto dbo.NombreObjeto
-- Nueva definición;
DROP: eliminar el objeto
DROP elimina el objeto y su definición. Los datos contenidos por el objeto también pueden perderse, como ocurre al eliminar una tabla.
DROP TipoDeObjeto dbo.NombreObjeto;
La sintaxis exacta depende del tipo de objeto.
Ejemplo: crear una tabla de trabajo
CREATE TABLE dbo.ProductoEtiquetaDemo
(
IdProducto INT NOT NULL,
Etiqueta NVARCHAR(50) NOT NULL,
CONSTRAINT PK_ProductoEtiquetaDemo
PRIMARY KEY (IdProducto, Etiqueta)
);
La instrucción falla si ya existe un objeto con ese nombre. Para un script repetible podemos comprobarlo explícitamente, pero primero debemos decidir si encontrar el objeto significa conservarlo, modificarlo o detener el despliegue.
Modificar la definición
ALTER TABLE dbo.ProductoEtiquetaDemo
ADD FechaRegistro DATETIME2(0) NULL;
ALTER conserva el objeto, pero el cambio puede requerir validar datos existentes, dependencias —otros objetos o aplicaciones que lo utilizan—, espacio, bloqueos y compatibilidad con la aplicación.
Eliminar únicamente con intención explícita
DROP TABLE IF EXISTS dbo.ProductoEtiquetaDemo;
IF EXISTS evita un error cuando el objeto no está presente; no vuelve segura la eliminación. Antes de ejecutar revisamos dependencias, datos que deben conservarse y posibilidad de restauración.
CREATE OR ALTER
SQL Server admite CREATE OR ALTER para varios objetos programables, como procedimientos, vistas y funciones:
CREATE OR ALTER VIEW dbo.vw_ProductosActivos
AS
SELECT IdProducto, Nombre, Precio
FROM dbo.Producto
WHERE Activo = 1;
Esta forma facilita scripts que sirven tanto para una instalación nueva como para una actualización, sin eliminar y recrear el objeto.
Qué conviene comprobar
Un cambio de esquema puede bloquear consultas, invalidar supuestos de la aplicación o fallar por dependencias. Debe probarse con una copia representativa y acompañarse de un plan de despliegue y reversión, la forma prevista de volver al estado anterior.
También confirmamos permisos, las autorizaciones concedidas a una cuenta o rol. Crear o modificar objetos requiere permisos diferentes de los necesarios para leer o actualizar datos.