Архив метки: IF EXISTS

Весьма ожидаемая фича SQL Server 2016 — DROP IF EXISTS

Вам нравится писать следующие условные операторы DROP?

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

Думаю нет.

Думаю часто новички ищут подобное в Google — SQL Server Drop if Exists.

Начиная с С SQL Server +2016 CTP3 вы можете использовать новые новую фичу вместо большого IF врапера, например:

DROP TABLE IF EXISTS dbo.table1

DROP TRIGGER IF EXISTS trtable1

Если объект даже не существует, выполнение скрипта продолжится.

Список объектов БД, которые можно удалить таким образом:

AGGREGATE PROCEDURE TABLE
ASSEMBLY ROLE TRIGGER
VIEW RULE TYPE
DATABASE SCHEMA USER
DEFAULT SECURITY POLICY VIEW
FUNCTION SEQUENCE
INDEX SYNONYM

Также возможны следующие выполнения команды

  • ALTER TABLE DROP COLUMN IF EXISTS
  • ALTER TABLE DROP CONSTRAINT IF EXISTS