Ограничение внешнего ключа SQL DROP TABLE

4 ответа

Нет, это не приведет к удалению вашей таблицы, если на нее действительно ссылаются внешние ключи.

Чтобы получить все отношения внешних ключей, ссылающиеся на вашу таблицу, вы можете использовать этот SQL (если вы на SQL Server 2005 и выше):

SELECT * 
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('Student')

и, если они есть, с помощью этого оператора здесь вы можете создать операторы SQL, чтобы фактически удалить эти отношения FK:

SELECT 
    'ALTER TABLE [' +  OBJECT_SCHEMA_NAME(parent_object_id) +
    '].[' + OBJECT_NAME(parent_object_id) + 
    '] DROP CONSTRAINT [' + name + ']'
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('Student')
311
ответ дан 23 November 2019 в 23:13
поделиться

Если я хочу удалить все таблицы в моя база данных

Тогда намного проще удалить всю базу данных:

DROP DATABASE WorkerPensions
-4
ответ дан 23 November 2019 в 23:13
поделиться

Если это SQL Server, вы должны сбросить ограничение, прежде чем вы сможете удалить таблицу.

2
ответ дан 23 November 2019 в 23:13
поделиться

Если вы сначала отбросите «дочернюю» таблицу, внешний ключ также будет удален. Если вы попытаетесь сначала отбросить «родительскую» таблицу, вы получите сообщение «Не удалось удалить объект 'a', потому что на него ссылается ограничение FOREIGN KEY». ошибка.

20
ответ дан 23 November 2019 в 23:13
поделиться
Другие вопросы по тегам:

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