¿Como podemos eliminar un procedimiento o función si existe en SQL Server?
Para ello utilizaremos la función OBJECT_ID() de SQL Server
Esta función admite varios valores pero los que necesitamos son los dos primeros.
OBJECT_ID(‘esquema.tabla’, ‘tipo’)
Dónde el tipo puede ser uno de los siguientes:
- Procedure: “P”
- Función (scalar function) que devuelve un valor – FN
- Función (Inline table valued function) donde devuelve el resultado directamente de una select, sería un paralelo a una vista-> IF
- Función (multi statement table valued function) donde devuelve una tabla pero puede existir mas de una consulta dentro de la función -> TF
- Functión (assembly <clr> table-valued function) función que utiliza una tabla intermedia para devolver valores. -> FT
Ejemplo destruyendo un Procedimiento
IF OBJECT_ID('esquema.tabla', 'P') IS NOT NULL DROP PROCEDURE esquema.tabla;
GO
Ejemplo destruyendo una función
IF OBJECT_ID('esquema.tabla', 'FN') IS NOT NULL DROP FUNCTION esquema.tabla;
GO