尝试删除列时收到的错误消息:
我已经尝试找到默认约束,如下所述:
SQL Server 2005 drop column with constraints
不幸的是没有成功:(返回的行是:
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 Server管理器中),选择“修改”并删除该列来生成删除该列的脚本。然后,Table Designer>生成更改脚本生成必要的命令: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;
?