С выходом SQL Server 2016 CTP3 нас ожидает приятное дополнение в синтаксисе.
Изменения касаются DDL операций DROP и ALTER TABLE.
Теперь любую операцию по удалению объекта (таблицы, процедуры, функции, триггеры, индексы и т.д.), или столбца таблицы можно выполнить проще с помощью инструкции DROP IF EXISTS.
Для проверки существования объекта, перед его созданием использовался скрипт на подобии того, что ниже:
--1) if object_id ( N'dbo.TestTable', N'U' ) is not null drop table dbo.TestTable; go create table dbo.TestTable ( id int identity ); go --2) if exists ( select * from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id where t.name = N'TestTable' and s.name = N'dbo' ) drop table dbo.TestTable; go create table dbo.TestTable ( id int identity ); go
Теперь есть ещё один способ (только начиная с CTP3 SQL Server 2016):
--3) drop table if exists dbo.TestTable; go create table dbo.TestTable ( id int identity ); go
Синтаксис поддерживается для следующих объектов:
Кроме объектов, DROP IF EXISTS можно использовать и при удалении столбцов и ограничений:
Автор: Алексей Князев
*** *** *** *** *** *** *** *** *** *** *** ***
Полезные Скрипты
Рубрика Проверь себя
Ссылка на наш канал YouTube