尝试删除列时收到的错误消息:
对象“ defEmptyString”取决于列“ fkKeywordRolleKontakt”。 讯息5074,第16级,状态1,第43行 ALTER TABLE DROP COLUMN fkKeywordRolleKontakt失败,因为一个或多个对象访问此列。
对象“ defEmptyString”取决于列“ fkKeywordRolleKontakt”。
讯息5074,第16级,状态1,第43行
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt失败,因为一个或多个对象访问此列。
我已经尝试找到默认约束,如此处所述: 带约束的SQL Server 2005删除列
不幸的是没有成功:(返回的行是:
fkKeywordRolleKontakt 2 814625945 0 defEmptyString
而且我无法删除fkKeywordRolleKontakt和中的任何一个defEmptyString。
fkKeywordRolleKontakt
defEmptyString
摆脱这种依赖性的正确方法是什么?
编辑:也许这也很重要。列fkKeywordRolleKontakt的类型为udKeyword(nvarchar(50)),默认值为dbo.defEmptyString。
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 moreobjects access this column.
我可以通过右键单击列条目(dbo.tlkpRolleKontakt>列> fkKeywordRolleKontakt)(在MSSQL Server管理器中),选择“修改”并删除该列来生成删除该列的脚本。然后,表设计器>生成更改脚本生成了必要的命令:
ALTER TABLE dbo.tlkpRolleKontakt DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword EXECUTE sp_unbindefault N'dbo.tlkpRolleKontakt.fkKeywordRolleKontakt' ALTER TABLE dbo.tlkpRolleKontakt DROP COLUMN fkKeywordRolleKontakt
而已 :)
消息5074,级别16,状态1,行1 对象’defEmptyString’取决于列’fkKeywordRolleKontakt’。
消息5074,级别16,状态1,行1 对象’FK_tlkpRolleKontakt_tlkpKeyword’取决于列’fkKeywordRolleKontakt’。 消息4922,级别16,状态9,第1行,ALTER TABLE DROP COLUMN fkKeywordRolleKontakt失败,因为一个或多个对象访问此列。