2016-07-19 38 views
4

我们正在尝试维护两个SQL环境,比如说Development和Staging。在分期阶段我对一个名为SProc1的存储过程做了一个错误修正,同时开发人员对同一个sp进行了一些修改。我需要将错误修复应用于开发,而不会丢失开发中的更改。SQL Server对象(Schema与合并比较)

在Visual Studio 2015上使用SQL Schema比较不会合并代码,它只是直接替换版本。

我的问题是,市场上有哪些其他工具可以维护这种场景?

+0

我假设你有某种源控制(比如TFS)?我会说代码合并是您的源代码管理系统的一项任务。 –

+0

是的,我们正在使用TFS,但还有什么我们可以用于sql对象吗?我尝试了Redgate,但他们没有这样的工具 – carlosm

+0

好吧,我们只需将SP:s作为文本文件检入,然后TFS就可以进行合并。我们有一个独立的部署系统fördb-changes。我不知道如何帮助你。 –

回答

3

这里没有正确的答案。您在环境之间创建了冲突,解决此问题的唯一方法是比较每个版本的来源并手动合并差异。

尽管堆栈溢出的问题严重问题,但我推荐一种名为Beyond Compare的应用程序,用于各种文件比较。尽管如此,它在文本比较方面表现出色。

或者,您提到您正在使用TFS。假设发展更改已签入开发分支,您可以为此修补程序创建一个分支,尽管这是来自上次签入,应用更改,然后再合并。这会产生一个冲突,需要按照Beyond Compare进行手动纠正,但是在版本控制中将保留冲突历史记录。

编辑:下面的gif解释的过程比我更好:

enter image description here Source

+0

谢谢克里斯 – carlosm

3

晚的答案,但我希望这将是有益的新读者

我最近偶然发现了一款​​新的免费工具,ApexSQL Compare,它提供了文件和文件夹的比较和合并。工具可以集成到SSMS/VS,看起来像这样:

Merge view screenshot

此工具将创建合并脚本,其中包括bug修复和在同一个SP的变化,但剧本只能手动执行。另外,要手动执行这个脚本,CREATE PROCEDURE语句应该改为ALTER PROCEDURE