我正在使用SSDT来同步两个数据库。
为此,我在Server1中有一个数据库,在Server2中有一个数据库,在我的项目中有一个模式(Schema)。
我总是在Server1数据库中进行更改,并将这些更改应用于Server2数据库。为此,我使用以下工作流程:
- 将Server1数据库与Schema进行比较,并使用Server1更改更新Schema
- 将Schema与Server2数据库进行比较,并将Schema中的更改更新到数据库中
通常情况下,这样做效果很好,但我发现最近一次在表中重命名列时出现了问题。
通常情况下,如果我在表中重命名列,更改会被检测到作为列重命名,因此,当我将Server1与Schema进行比较时,列重命名会被正确地检测到,我可以安全地完成我的工作流程。
然而,在我最后一次在Server1中对表中的列进行重命名时,与Schema进行比较时,它没有将变化检测为列重命名,而是将该变化检测为删除原名称的列和创建新名称的列。显然,如果我将这些更改应用于Server2数据库,我将失去重命名列中的所有数据。
SSDT中是否存在这种行为的原因?我能否指示SSDT了解这是列重命名?
我知道如何手动操作,但我更希望在SSDT中避免这个问题,或者如果将来再次出现此问题,则能够解决它。