Как я отбрасываю столбец с зависимостями объекта в SQL Server 2008?

Сообщение об ошибке я получаю при попытке отбросить столбец:

Объект '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

Вот именно :)

26
задан Community 23 May 2017 в 11:46
поделиться

2 ответа

Вы сначала попробовали:

ALTER TABLE <tablename> DROP CONSTRAINT defEmptyString;

?

36
ответ дан 28 November 2019 в 07:10
поделиться

используйте этот сценарий для отмены проверки ограничения:

ALTER TABLE  @tablename  NOCHECK CONSTRAINT  @constraintname 
2
ответ дан 28 November 2019 в 07:10
поделиться
Другие вопросы по тегам:

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