Сообщение об ошибке я получаю при попытке отбросить столбец:
Объект 'defEmptyString' зависит от столбца 'fkKeywordRolleKontakt'.
Сообщение 5074, уровень 16, состояние 1, строка 43
СТОЛБЕЦ ОТБРАСЫВАНИЯ ALTER TABLE fkKeywordRolleKontakt перестал работать, потому что один или несколько объектов получают доступ к этому столбцу.
Я уже попытался найти ограничения по умолчанию, как описано здесь: SQL Server 2005 отбрасывает столбец с ограничениями
К сожалению, без любого успеха :( Возвращенная строка:
fkKeywordRolleKontakt 2 814625945 0 defEmptyString
И я не могу удалить ни один из fkKeywordRolleKontakt
и defEmptyString
.
Что корректный путь состоит в том, чтобы избавиться от этой зависимости?
Править: Возможно, это важно также. Столбец fkKeywordRolleKontakt имеет тип udKeyword (nvarchar (50)) со значением по умолчанию dbo.defEmptyString
.
Редактирование 2: решенный
Я мог решить проблему теперь. Я сожалею, я не скопировал полное сообщение об ошибке, которое было:
Msg 5074, Level 16, State 1, Line 1
The object 'defEmptyString' is dependent on column 'fkKeywordRolleKontakt'.
Msg 5074, Level 16, State 1, Line 1
The object 'FK_tlkpRolleKontakt_tlkpKeyword' is dependent on column 'fkKeywordRolleKontakt'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt failed because one or more objects access this column.
Я мог генерировать сценарий для отбрасывания столбца путем щелчка правой кнопкой по записи столбца (dbo.tlkpRolleKontakt> Столбцы> fkKeywordRolleKontakt) (в Диспетчере серверов MSSQL), выбор Изменяют и удаление столбца. Затем Разработчик Таблицы> Генерирует Сценарий изменения, генерировал необходимые команды:
ALTER TABLE dbo.tlkpRolleKontakt
DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword
EXECUTE sp_unbindefault N'dbo.tlkpRolleKontakt.fkKeywordRolleKontakt'
ALTER TABLE dbo.tlkpRolleKontakt
DROP COLUMN fkKeywordRolleKontakt
Вот именно :)
Вы сначала попробовали:
ALTER TABLE <tablename> DROP CONSTRAINT defEmptyString;
?
используйте этот сценарий для отмены проверки ограничения:
ALTER TABLE @tablename NOCHECK CONSTRAINT @constraintname