我有一個包含行的表。我正在使用SQL數據庫項目來管理數據庫,並且我想通過向此表添加新的NOT NULL列來升級架構,該列附帶對新表的FK約束(也包含在新版本的項目)。在數據庫項目的新表上創建非空FK
這可能嗎?我知道我可以使用該選項爲新的FK列生成智能默認值,但這沒有幫助,因爲我沒有機會將任何行放入由FK引用的新表中。
我有什麼選擇?由於預部署腳本在AFTER之後執行模式比較,因此我無法在此處創建新表,因爲比較先運行並確定需要創建表 - 當腳本到達腳本中的這一點時會發生這種情況並認爲已經存在(預先部署中創建)表
我不認爲這會工作。實際的發佈過程仍然會嘗試1 /創建一個新表2 /在現有表上創建一個新列,並且3在新表上爲新列創建一個FK。這將失敗,因爲即使使用智能默認設置,FK也不會被滿足,因爲1 /中的新表是空的 –
@SimonGreen它的工作原理,數據庫項目檢查腳本後的約束(和外鍵) – Backs
好悲傷,所以他們做!是的,這改變了一切。我必須假定後發佈腳本在主發佈腳本中的所有內容之後運行......但是,我可以在新表中插入需要的記錄,並在我的新FK列中設置所需的值所有發生在FK限制被施加之前......簡單!非常感謝 –