我已閱讀了很多帖子,但沒有任何工作。刪除一列看不見的約束
我試圖默認值添加到列如下:
AlterColumn("dbo.BusinessUnit_Map", "RelationshipType", c => c.String(nullable: false, defaultValue: "RollsUpTo"));
這將產生錯誤:
The object 'DF_dbo.BusinessUnit_Map_RelationshipType' is dependent on column 'RelationshipType'. ALTER TABLE ALTER COLUMN RelationshipType failed because one or more objects access this column.
我不能在任何地方找到這個約束。以下是顯示錶格中唯一默認約束的屏幕截圖。
一個有趣的事情是,如果我嘗試刪除列並重新添加它,工作正常。只有當我使用AlterColumn
時,它纔會失敗。
我已經試過下降這樣的約束:
Sql("ALTER TABLE dbo.BusinessUnit_Map DROP CONSTRAINT DF_dbo.BusinessUnit_Map_RelationshipType");
但.
是一個語法錯誤,所以我有三個下劃線代替它:
Sql("ALTER TABLE dbo.BusinessUnit_Map DROP CONSTRAINT DF_dbo___BusinessUnit_Map_RelationshipType");
但系統響應
'DF_dbo___BusinessUnit_Map_RelationshipType' is not a constraint. Could not drop constraint. See previous errors.
這個約束在哪裏?我怎麼把它關掉?
更新
一個建議是嘗試此查詢來搜索約束:
select o.type_desc,o2.name as parent_name,* from sys.objects as o
left join sys.objects as o2 on o.parent_object_id=o2.object_id
where o.name='DF_dbo.BusinessUnit_Map_RelationshipType'
這個返回結果爲零,所以我修改了它,看看它會告訴我有關BusinessUnit_Map
select o.type_desc,o2.name as parent_name,* from sys.objects as o
left join sys.objects as o2 on o.parent_object_id=o2.object_id
where o2.name='BusinessUnit_Map'
此查詢的結果如下所示,它們不包含神祕利弊traint。
同樣的錯誤,而不是約束:( – Samo
@Samo,你可以用SQL直接(SSMS)太 – Shnugo
@Samo工作,編輯我的答案...您會在那裏找到一個語句,它將爲您帶來名稱爲'DF_dbo.BusinessUnit_Map_RelationshipType'的對象的詳細信息' – Shnugo