Sim*_*ter 26 sql sql-server dependencies sql-server-2008 sql-drop
我在尝试删除列时获得的错误消息:
对象'defEmptyString'依赖于列'fkKeywordRolleKontakt'.
Msg 5074,Level 16,State 1,Line 43
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt失败,因为一个或多个对象访问此列.
我已经尝试找到默认约束,如下所述: 带有约束的SQL Server 2005 drop column
不幸的是没有任何成功:(返回的行是:
fkKeywordRolleKontakt 2 814625945 0 defEmptyString
Run Code Online (Sandbox Code Playgroud)
我无法删除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> Columns> 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
Run Code Online (Sandbox Code Playgroud)
而已 :)
Aar*_*and 36
你先试试了吗:
ALTER TABLE <tablename> DROP CONSTRAINT defEmptyString;
Run Code Online (Sandbox Code Playgroud)
?
删除依赖于该列的约束
ALTER TABLE TableName DROP CONSTRAINT dependent_constraint
Run Code Online (Sandbox Code Playgroud)
然后Drop Column:
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME
Run Code Online (Sandbox Code Playgroud)
dependent_constraint:当我们尝试删除依赖列时,此约束会显示在错误中.
示例:尝试删除某些列 IsDeleted2
错误
对象'DF__Employees__IsDel__15502E78'依赖于列'IsDeleted2'.
ALTER TABLE DROP COLUMN IsDeleted2失败,因为一个或多个对象访问此列.
错误清楚地表明我们需要删除DF__Employees__IsDel__15502E78
约束
ALTER TABLE Employess
DROP CONSTRAINT DF__Employees__IsDel__15502E78;
Run Code Online (Sandbox Code Playgroud)
删除列: ALTER TABLE Employess DROP COLUMN IsDelted2
我现在可以解决这个问题了。抱歉,我没有复制完整的错误消息,该消息是:
消息 5074,级别 16,状态 1,第 1 行
对象“defEmptyString”依赖于列“fkKeywordRolleKontakt”。
消息 5074,级别 16,状态 1,第 1
行 对象“FK_tlkpRolleKontakt_tlkpKeyword”依赖于列“fkKeywordRolleKontakt”。
消息 4922,级别 16,状态 9,第 1 行 ALTER TABLE DROP COLUMN fkKeywordRolleKontakt 失败,因为一个或多个对象访问此列。
我可以生成一个脚本来删除该列,方法是右键单击列条目(dbo.tlkpRolleKontakt > Columns > fkKeywordRolleKontakt)(在 MSSQL Server Manager 中),选择修改并删除该列。然后表设计器 > 生成更改脚本生成了必要的命令:
ALTER TABLE dbo.tlkpRolleKontakt
DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword
EXECUTE sp_unbindefault N'dbo.tlkpRolleKontakt.fkKeywordRolleKontakt'
ALTER TABLE dbo.tlkpRolleKontakt
DROP COLUMN fkKeywordRolleKontakt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
90480 次 |
最近记录: |