SQL Server 2016: DIE

Una de las nuevas características y posiblemente la más graciosa hasta la fecha es DIE (Drop If Exist) para SQL Server 2016, esta característica antes era usada por medio un IF con un resultado booleano que era evaluado pero ahora tenemos un código más legible.

Los codigos que conocemos son como:

IF OBJECT_ID('dbo.Product, 'U') IS NOT NULL
DROP TABLE dbo.Product;

IF EXISTS (SELECT * FROM sys.triggers WHERE name = 'trProductInsert')
DROP TRIGGER trProductInsert

Los cuales ahora puede ser escritos como:

DROP TABLE IF EXIST dbo.Product

Drop TRIGGER IF EXIST trProductInsert

Al momento esto solo es valido para:

  • Agregaciones
  • Ensamblados
  • Vistas
  • Bases de datos
  • Default
  • Funciones
  • Indices
  • Procedimientos
  • Roles
  • Reglas
  • Esquemas
  • Politicas de seguridad
  • Sinonimos
  • Tablas
  • Triggers (Desencadenadores)
  • Tipos
  • Usuarios
  • Vistas

PD: Al momento esto es más que nada una traducción de este blog post de Microsoft y esperemos que esto venga a meter algunos comportamientos como el upsert (aunque ya existe como merge).


Más información:


Drop table
https://msdn.microsoft.com/en-us/library/ms173790.aspx 

Drop procedure
https://msdn.microsoft.com/en-us/library/ms174969.aspx

Comentarios