en Sql Server 2016, si existe es la nueva cláusula opcional introducida en la instrucción DROP existente. Básicamente, comprueba la existencia del objeto, si el objeto existe lo suelta y si no existe continuará ejecutando la siguiente instrucción en el lote. Básicamente evita escribir la condición if y dentro de la condición if escribir una declaración para verificar la existencia del objeto.,
sintaxis:
DROP OBJECT_TYPE OBJECT_NAME
donde: OBJECT_TYPE como tabla, procedimiento, Vista, función, Base de datos, disparador, ensamblaje, secuencia, índice, etc.
SI EXISTE: es una cláusula opcional y si se menciona en la instrucción DROP, a continuación, se comprueba la existencia del objeto, si es que existe se va a caer de lo contrario continúa ejecutando la siguiente instrucción en el bloque sin plantear problemas.
entendamos esta nueva cláusula IF EXISTS en la instrucción DROP con una extensa lista de ejemplos., Para demostrar esta cláusula primero vamos a crear una base de datos de ejemplo con una tabla y un procedimiento almacenado.
CREATE DATABASE SqlHintsDemoDBGOUSE SqlHintsDemoDBGOCREATE TABLE dbo.Customers (Id INT, Name Nvarchar(50))GOCREATE PROCEDURE dbo.WelcomeMessageASSELECT 'Welcome to Sql Server'GO
DROP Stored Procedure IF EXISTS
Cómo comprobar si existe un procedimiento almacenado
en Sql Server 2016 podemos escribir una instrucción como la siguiente para soltar un procedimiento almacenado si existe.
DROP PROCEDURE IF EXISTS dbo.WelcomeMessage
Si el procedimiento almacenado no existe no provoca ningún error, se continuará la ejecución de la siguiente instrucción en el lote., Intentemos volver a soltar el procedimiento almacenado WelcomeMessage que ya se ha caído.
el resultado es claro que no provoca ningún error si el procedimiento almacenado no existe, va a continuar la ejecución de la siguiente instrucción en el lote.
en versiones anteriores de Sql Server usamos la instrucción como la siguiente para eliminar el procedimiento almacenado si existe.,
IF EXISTS(SELECT 1 FROM sys.procedures WHERE Name = 'WelcomeMessage')BEGIN DROP PROCEDURE dbo.WelcomeMessageEND
puede ir a través del artículo Cómo comprobar si existe un procedimiento almacenado para ver varias opciones en las versiones anteriores de Sql Server para comprobar la existencia de un procedimiento almacenado.
DROP TABLE IF EXISTS
Cómo comprobar si existe una tabla
en Sql Server 2016 podemos escribir una instrucción como la siguiente para soltar una tabla si existe.,
DROP TABLE IF EXISTS dbo.Customers
Si la tabla no existe, no provoca ningún error, se continuará la ejecución de la siguiente instrucción en el lote. Vamos a tratar de volver a soltar la mesa dbo.Clientes que ya se ha caído.
el resultado es claro que no provoca ningún error si la Tabla no existe, va a continuar la ejecución de la siguiente instrucción en el lote.,
en versiones anteriores de Sql Server usamos la instrucción como la siguiente para eliminar la tabla si existe.
IF EXISTS(SELECT 1 FROM sys.Tables WHERE Name = N'Customers' AND Type = N'U')BEGIN DROP TABLE dbo.CustomersEND
puede ir a través del artículo Cómo comprobar si existe una tabla para ver varias opciones en las versiones anteriores de Sql Server para comprobar la existencia de una tabla.
DROP DataBase IF EXISTS
Cómo comprobar si existe una base de datos
en Sql Server 2016 podemos escribir una instrucción como la siguiente para soltar una base de datos si existe.,
USE MASTERGODROP DATABASE IF EXISTS SqlHintsDemoDB
Si la Base de datos no existe, no provoca ningún error, se continuará la ejecución de la siguiente instrucción en el lote. Vamos a tratar de volver a soltar la base de datos SqlHintsDemoDB que ya se ha caído.
el resultado es claro que, no provoca ningún error si la Base de datos no existe, se continuará la ejecución de la siguiente instrucción en el lote.,
en versiones anteriores de Sql Server usamos la instrucción como la siguiente para soltar la base de datos si existe.
IF DB_ID('SqlHintsDemoDB') IS NOT NULLBEGIN DROP DATABASE SqlHintsDemoDBEND
puede ir a través del artículo Cómo comprobar si existe una base de datos para ver varias opciones en las versiones anteriores de Sql Server para comprobar la existencia de una base de datos.,ISJSON Función en Sql Server 2016