Listado completo de tutoriales
121 - Procedimientos almacenados (eliminar) |
Los procedimientos almacenados se eliminan con "drop procedure". Sintaxis:
drop procedure NOMBREPROCEDIMIENTO;
Eliminamos el procedimiento almacenado llamado "pa_libros_autor":
drop procedure pa_libros_autor;
Si el procedimiento que queremos eliminar no existe, aparece un mensaje de error, para evitarlo, podemos emplear esta sintaxis:
if object_id('NOMBREPROCEDIMIENTO') is not null
drop procedure NOMBREPROCEDIMIENTO;
Eliminamos, si existe, el procedimiento "pa_libros_autor", si no existe, mostramos un mensaje:
if object_id('pa_libros_autor') is not null
drop procedure pa_libros_autor
else
select 'No existe el procedimiento "pa_libros_autor"';
"drop procedure" puede abreviarse con "drop proc".
Se recomienda ejecutar el procedimiento almacenado del sistema "sp_depends" para ver si algún objeto depende del procedimiento que deseamos eliminar.
Podemos eliminar una tabla de la cual dependa un procedimiento, SQL Server lo permite, pero luego, al ejecutar el procedimiento, aparecerá un mensaje de error porque la tabla referenciada no existe.
Ingresemos el siguiente lote de comandos en el SQL Server Management Studio:
-- Eliminamos, si existe, el procedimiento almacenado "pa_crear_libros":
if object_id('pa_crear_libros') is not null
drop procedure pa_crear_libros;
-- Verificamos que no existe ejecutando "sp_help":
exec sp_help pa_crear_libros;
go
-- Creamos el procedimiento:
create procedure pa_crear_libros
as
if object_id('libros')is not null
drop table libros
create table libros(
codigo int identity,
titulo varchar(40),
autor varchar(30),
editorial varchar(20),
precio decimal(5,2),
cantidad smallint,
primary key(codigo)
)
insert into libros values('Uno','Richard Bach','Planeta',15,5)
insert into libros values('Ilusiones','Richard Bach','Planeta',18,50)
insert into libros values('El aleph','Borges','Emece',25,9)
insert into libros values('Aprenda PHP','Mario Molina','Nuevo siglo',45,100)
insert into libros values('Matematica estas ahi','Paenza','Nuevo siglo',12,50)
insert into libros values('Java en 10 minutos','Mario Molina','Paidos',35,300);
go
-- Verificamos que existe:
exec sp_help pa_crear_libros;
-- Lo eliminamos sin corroborar su existencia:
drop proc pa_crear_libros;
-- Vemos si aparece en la lista de objetos que muestra "sp_help":
exec sp_help pa_crear_libros;
-- Solicitamos su eliminación nuevamente (No existe, aparece un mensaje de error):
drop proc pa_crear_libros;
-- Solicitamos su eliminación verificando si existe, si no existe, mostramos un mensaje:
if object_id('pa_crear_libros') is not null
drop proc pa_crear_libros
else
select 'No existe el procedimiento "pa_crear_libros"';