【发布时间】:2015-03-30 06:06:38
【问题描述】:
在 VS2013 中使用数据库项目时,如果对底层物理数据库进行了更改(例如,使用 SSMS 添加表),如果您从 VS 进行模式比较,它会从 VS 检测到这个新表似乎您唯一的选择是忽略此更改,或者在执行 VS Schema Compare 中的更新时将其删除。
对吗?
【问题讨论】:
在 VS2013 中使用数据库项目时,如果对底层物理数据库进行了更改(例如,使用 SSMS 添加表),如果您从 VS 进行模式比较,它会从 VS 检测到这个新表似乎您唯一的选择是忽略此更改,或者在执行 VS Schema Compare 中的更新时将其删除。
对吗?
【问题讨论】:
不正确,它不是很直观,但是您可以将物理数据库中所做的更改导入到您的 VS 项目中。诀窍是在模式比较屏幕中点击源实体和目标实体之间的“切换方向”按钮并重新运行比较 - 然后,您将看到对该差异的操作已从删除更改为添加,并且当您执行更新后,该表将被添加到您的 VS 数据库模型中。
一些更详细的注释可以在这篇博文中看到:
http://sanderstechnology.com/2013/schema-modelling-with-visual-studio-2013-preview/12336/
【讨论】:
SSDT 数据库项目并非旨在轻松适应对数据库所做的更改并退回到项目中。它鼓励您进行相反的操作并首先更新项目,这不是大多数数据库开发人员目前的工作方式。
如果您要定期进行“连接”开发,则可能值得尝试为该开发方法设计的工具,例如 ReadyRoll,因为它有一个 built-in mechanism 从数据库同步到项目。
如果您不经常直接对数据库进行更改,则最好像现在一样使用架构比较功能。
【讨论】: