В ранних версиях SQL Server (до 2017) при удалении несуществующей таблицы таблицы вы получали сообщение об ошибке: "Не удалось удалить таблица "t1", так как он не существует или отсутствуют разрешения." В рамках интерактивного (чистого) SQL избежать возникновения ошибки в этом случае не получалось. Однако проблема легко решается процедурно (T-SQL): IF object_id('t1') IS NOT NULL DROP TABLE t1; Встроенная функция object_id возвращает идентификатор объекта, заданного именем, или же NULL, если такого имени не существует. И вот в SQL Server 2017 появился оператор DROP TABLE IF EXISTS, который не вызывает ошибки, если удаляемой таблицы не существует, например: DROP TABLE IF EXISTS t1; Теперь предположим, что нам нужно удалить связанные таблицы. Рассмотрим следующий пример: CREATE TABLE t1(id INT IDENTITY PRIMARY KEY); CREATE TABLE t2(id INT IDENTITY PRIMARY KEY, t1_id INT REFERENCES t1); GO INSERT INTO T1 DEFAULT VALUES; GO 3 -- выполним предыдущий пакет (т.е. вставку) 3 раза Про