In SQL Server 2016 CTP3 objects can DIE (DROP IF EXISTS)
Do you like to write following conditional DROP statements:
   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
  
  I don't like these, and if you also don't like them, then you might try new DROP IF EXISTS (a.k.a. DIE :) ) statements in SQL Server 2016.
From SQL Server 2016 CTP3 you can use new DIE statements instead of big IF wrappers, e.g.:
   DROP TABLE IF EXISTS dbo.Product
   
   
   DROP TRIGGER IF EXISTS trProductInsert
  
  If the object does not exists, DIE will not fail and execution will continue. Currently, the following objects can DIE:
| AGGREGATE | PROCEDURE | TABLE | 
| ASSEMBLY | ROLE | TRIGGER | 
| VIEW | RULE | TYPE | 
| DATABASE | SCHEMA | USER | 
| DEFAULT | SECURITY POLICY | VIEW | 
| FUNCTION | SEQUENCE | |
| INDEX | SYNONYM | 
DIE is added on columns and constraints in ALTER TABLE statement
- ALTER TABLE DROP COLUMN IF EXISTS
- ALTER TABLE DROP CONSTRAINT IF EXISTS
Documentation is already published on MSDN:
DROP TABLE (Transact-SQL) , DROP PROCEDURE (Transact-SQL) , DROP TRIGGER (Transact-SQL) , ALTER TABLE (Transact-SQL) , etc.