Este artículo analiza el 'SOLTAR SI EXISTE' declaración disponible en SQL Server 2016 y versiones posteriores. 'SI SALGA' es la última cláusula opcional agregada en la declaración DROP existente en SQL Server 2016 y versiones posteriores. Esencialmente, el 'SOLTAR SI EXISTE' La opción se utiliza cuando es necesario comprobar si una entidad permanece en una base de datos antes de crearla o eliminarla. En este caso, primero eliminaremos el objeto de base de datos existente y luego lo volveremos a crear con cambios si es necesario.
Por lo tanto, evita la forma antigua de escribir la condición if y dentro de la condición if escribir una declaración para probar la presencia del objeto para eliminarlo. Si no ocurre, se seguirá ejecutando la siguiente instrucción del lote. Pero si intentamos eliminar un objeto que no existe, generará un mensaje de error como se muestra a continuación.
Ejecute la siguiente consulta.
drop table dbo.company
La salida será así.
El error surge al soltar el objeto de la base de datos que no existe
Sintaxis
'DROP object_type [IF EXISTS] object_name'
Argumentos
TIPO DE OBJETO:
El tipo de objeto puede ser cualquiera de la base de datos, disparador, ensamblaje, secuencia, índice, tabla, vista de procedimiento, función, etc.
SI EXISTE:
Es una cláusula opcional y si se menciona en la instrucción DROP, verificará la existencia del objeto, si existe lo eliminará, de lo contrario continuará ejecutando la siguiente instrucción en el bloque sin producir ningún error.
Ahora, con la introducción del nuevo método 'DROP IF EXISTS' en SQL Server 2016, los desarrolladores pueden escribir código breve.
Primero, cree una base de datos llamada 'appuals'.
Creando una base de datos
Ahora, crearemos una tabla que se eliminará ejecutando el siguiente código.
use [appuals] Go CREATE TABLE temp (id INT, nombre varchar (100)); VAMOS
La salida será la siguiente.
Creación de tablas
Además, cree un procedimiento de tienda que se eliminará utilizando el siguiente código.
USE [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Crear PROCEDIMIENTO [dbo]. [Sp_temp] AS BEGIN SET NOCOUNT ON; SELECCIONAR * de dbo.temp; FIN
La salida será la siguiente.
Creación de procedimientos de tienda
Método antiguo: antes de que SQL Server usara drop if sale en objetos de base de datos
El uso del método DROP IF EXISTS antes de SQL Server 2016 requería escribir un código extenso de envoltorios de instrucciones IF.
Drop table si existe
El método anterior para dejar caer una mesa es el siguiente.
Si usamos SQL Server 2015 o una versión anterior, debemos ejecutar el siguiente grupo de código.
Si (OBJECT_ID ('dbo.temp') no es nulo) Drop Table temp
La salida será la siguiente.
Dejando caer la mesa
Ahora su sintaxis es bastante confusa, por lo que si no le gusta y está utilizando SQL Server 2016 o superior, puede optar por una declaración simple DROP IF EXIST en lugar de grandes contenedores.
Drop store procedimiento si existe:
Para eliminar el procedimiento, tenemos que escribir una declaración condicional para verificar si el procedimiento de almacenamiento existe o no y luego escribir la declaración de caída. De lo contrario, generará un error en caso de que el procedimiento almacenado no exista.
Ahora ejecute las siguientes declaraciones para eliminar el procedimiento en versiones anteriores a SQL Server 2016.
SI EXISTE (SELECCIONE 1 DE sys.procedures DONDE Nombre = 'sp_temp') DEJAR PROCEDIMIENTO dbo.sp_temp
La salida será así.
Elimine el procedimiento utilizando el método antiguo de código contenedor if
Elimine la base de datos si existe:
Si está utilizando versiones anteriores de SQL Server, debe ejecutar el siguiente código para eliminar la base de datos.
SI DB_ID ('appuals') NO ES NULO COMIENZA DROP DATABASE appuals END
La salida será la siguiente.
Suelta la base de datos usando un método antiguo
Nuevo método: DROP IF EXISTS compatible con SQL Server 2016 y versiones posteriores
Para colocar un objeto de base de datos en SQL Server 2016 y superior, necesitamos ejecutar una declaración simple.
Drop table si existe:
Podemos escribir una declaración como se muestra a continuación en SQL Server 2016 para eliminar una tabla almacenada si existe.
DROP TABLE SI EXISTE dbo.temp
La salida será así.
Suelta la tabla usando el nuevo método
Procedimiento de abandono si existe:
Ahora soltaremos el procedimiento almacenado que creamos al comienzo del artículo ejecutando el siguiente código.
PROCEDIMIENTO DE SOLICITUD SI EXISTE dbo.sp_temp
La salida será la siguiente.
Suelta la tabla usando el nuevo método
En lo que respecta a la sintaxis, esta simple declaración es fácil de entender y fácil de recordar. Del mismo modo, podemos seguir el mismo procedimiento para eliminar otros objetos de la base de datos.
Elimine la base de datos si existe:
Ejecute el siguiente código si desea eliminar la base de datos utilizando la verificación si existe
USE MASTER GO DROP DATABASE SI EXISTE APLICACIONES
La salida será la siguiente.
Suelta la base de datos usando el nuevo método
El beneficio de usar este método es que si la base de datos no existe, no causará ningún error, la siguiente declaración del lote continuará ejecutándose. Intentemos volver a eliminar la base de datos ya eliminada.
El error surge al volver a eliminar la base de datos ya eliminada.
Del mismo modo, podemos eliminar índices, vistas, secuencias, ensamblajes, etc. de la base de datos.
3 minutos de lectura