Обновление SQL Table в Enterprise Manager - внешние ключевые вопросы

StackOverflow https://stackoverflow.com/questions/3743471

Вопрос

У меня есть стол с целой кучей фкс.

Table Vehicles
-----------
ColorID -> Color.ID
MakeID -> Make.ID
ModelID -> Model.ID
etc...

Моя проблема заключается в том, что я забыл несколько столбцов, и мне нужно их добавить. Я могу добавить их в правой кнопкой мыши на столе и выбрать «дизайн», но не если я хочу сделать их не NULL, или удалить столбец. Я также мог бы создать скрипт Shop / Create, но я получаю эту ошибку:

Msg 3726, Level 16, State 1, Line 4
Could not drop object 'dbo.SellVehicles' because it is referenced by a FOREIGN KEY constraint.

Нужно ли пройти и удалить каждый FK, а затем бросить / создавать, а затем добавить их обратно или есть быстрый / безболезненный способ сделать это? Есть ли способ бросать и воссоздать эти фки быстро?

Почему нет

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_SellVehicles_Conditions]') AND parent_object_id = OBJECT_ID(N'[dbo].[SellVehicles]'))
ALTER TABLE [dbo].[SellVehicles] DROP CONSTRAINT [FK_SellVehicles_Conditions]
GO

Устранить эту ошибку? ФК все еще на другом столе ссылается?

Это было полезно?

Решение

Ограничение, которое вызывает ошибку, не на dbo.SellVehicles стол; Это на столе, что использованная литература то dbo.SellVehicles стол. Ссылки на цвет, Make и Model Tables не являются проблемой - вы пытаетесь бросить / удалить ребенка в отношениях родительской дочерней связи.

Я сомневаюсь, что ограничение вы тестируете для существования до ALTER TABLE ... DROP CONSTRAINT ....

В SSMS вы можете щелкнуть правой кнопкой мыши на столе и выберите «Зависимости». Есть кнопка переключателя для выбора просмотра объектов, которые зависят от dbo.SellVehicles стол или вещи, которые dbo.SellVehicles таблица зависит от.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top