Как отбросить список таблиц SQL Server, игнорируя ограничения?

От здесь :

Close

необходимо установить window.opener на что-то, иначе это жалуется.

14
задан Brian Tompsett - 汤莱恩 18 January 2017 в 20:19
поделиться

3 ответа

Простая ТАБЛИЦА ПАРАМЕТРОВ dbo.MyTable будет игнорировать все ограничения (и триггеры), кроме внешних ключей (если вы сначала не удалите дочернюю / ссылающуюся таблицу), где вам, возможно, придется сначала удалить их.

Изменить: после комментария:

Нет автоматического способа. Вам нужно будет пройти через sys.foreign_keys и сгенерировать несколько операторов ALTER TABLE.

3
ответ дан 1 December 2019 в 15:02
поделиться

Наконец-то я нашел решение, основанное на сценарии , предоставленном Джейсоном Пресли . Этот скрипт автоматически удаляет все ограничения в БД. Добавить предложение WHERE легко, чтобы оно применялось только к набору соответствующих таблиц. После этого просто удалить все таблицы.

0
ответ дан 1 December 2019 в 15:02
поделиться

Я подозреваю, что вам нужно будет выполнить команду '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;
-1
ответ дан 1 December 2019 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: