如何将漂移纳入我的Sql Server数据库项目?

时间:2013-02-20 21:00:28

标签: sql-server version-control visual-studio-2012 sql-server-data-tools

使用通常的源代码控制解决方案,程序员将从存储库更新其代码,然后检查他对存储库的更改。

我知道如何将漂移反馈到我的项目中的唯一方法是使用模式比较功能,但是这个功能只是告诉我我的项目和目标数据库之间的差异没有给出任何变化的指示如果我在使用Schema Compare更新我的项目时不小心排除这些项目,那么我可能会在某些地方恢复我所做的更改。

有没有更好的方法将漂移纳入我的项目而不必担心不小心不要吹走我所做的改变?

3 个答案:

答案 0 :(得分:0)

如果您使用SSMS,则可以尝试将SQL Source Control与数据库项目结合使用。我们已经宣布了一个具有此功能的beta版本:

http://social.msdn.microsoft.com/Forums/en-US/ssdt/thread/0c763f98-c55a-44a7-9100-80a6d9223d04

这将区分尚未同步到项目的数据库所做的更改,以及项目中需要应用于数据库的更改。如果这不符合您的需求,SQL Source Control项目团队很乐意听取您的意见!

答案 1 :(得分:0)

sqlpackage.exe可以选择检测数据库漂移(即自部署数据库以来所做的更改):

DriftReport Parameters. A SqlPackage.exe report action creates an XML report of the changes that have been made to the registered database since it was last registered.

它要求您在部署数据库时注册数据库,但我认为这不是特别重要。

希望有所帮助。

JT

答案 2 :(得分:0)

您可以将数据库项目(SSDT)作为目标进行比较,将“漂移数据库”作为源进行比较,“更新”按钮将轻松更新模型。

换句话说,您可以使用模式比较将更改导入到SSDT项目中,然后转而将模式(将新更新的更改)发布回数据库。