Простая ТАБЛИЦА ПАРАМЕТРОВ dbo.MyTable
будет игнорировать все ограничения (и триггеры), кроме внешних ключей (если вы сначала не удалите дочернюю / ссылающуюся таблицу), где вам, возможно, придется сначала удалить их.
Изменить: после комментария:
Нет автоматического способа. Вам нужно будет пройти через sys.foreign_keys
и сгенерировать несколько операторов ALTER TABLE.
Наконец-то я нашел решение, основанное на сценарии , предоставленном Джейсоном Пресли . Этот скрипт автоматически удаляет все ограничения в БД. Добавить предложение WHERE легко, чтобы оно применялось только к набору соответствующих таблиц. После этого просто удалить все таблицы.
Я подозреваю, что вам нужно будет выполнить команду 'alter' на проблемных таблицах перед отбрасыванием, чтобы удалить ограничения внешнего ключа.
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders;
DROP TABLE Orders;
Конечно, если вы сначала удалите дочерние таблицы, тогда у вас не будет этой проблемы. (если у вас нет ограничения таблицы A на таблицу B и ограничения таблицы B на A, тогда вам нужно будет изменить одну из таблиц, например, A, чтобы удалить ограничение)
, например, эта работа WONT, так как Orders имеет ограничение от Order_Lines
DROP TABLE Orders;
DROP TABLE Order_lines;
например, это будет работать
DROP TABLE Order_lines;
DROP TABLE Orders;