SQL Server 2016系統版本控制很酷。我正在使用免費的開發者版本。謝謝MS!SQL Server 2016無法將系統版本控制添加到關係表中
我無法弄清楚它是否會給我多版本的多對多關係。我有一個擁有角色集合的用戶對象,反之亦然。實體框架生成了UserRoles
表,該表保存User
和Roles
之間的關係。我能夠使用這篇文章http://sqlhints.com/tag/modify-existing-table-as-system-versioned-temporal-table/啓用User
和Roles
表的系統版本控制。
但是,我無法打開UserRoles
。我得到一個錯誤
將SYSTEM_VERSIONING設置爲ON失敗,因爲表具有帶級聯DELETE或UPDATE的FOREIGN KEY。
這是否意味着我們無法知道許多關係的版本?
例如,
- 上6/1 - 用戶1有基於role1和role2所,但在6/4
- - 用戶1的角色改爲基於role1和role3
所以,如果我想知道的狀態我認爲只有在UserRoles
上打開系統版本纔有可能,但這不起作用。
這是可行的還是不支持SQL Server 2016?如果沒有,有沒有其他辦法可以完成?
聽起來像是ON UPDATE CASCADE或ON UPDATE DELETE外鍵是問題所在。刪除級聯,並用知道並處理正確關係的刪除過程替換它,你應該沒問題。 –
這就是我們最終做的。非常感謝!不知道我怎麼能把這個標記爲答案。 – user2893547
我會將其放入「答案」部分,以便它可以顯示爲已回答。 :) –