2016-07-19 10 views
4

Wir versuchen, zwei SQL-Umgebung, sagen wir Entwicklung und Staging. Auf Staging habe ich einen Bugfix auf eine gespeicherte Prozedur, zum Beispiel SProc1, gemacht, während gleichzeitig jemand in der Entwicklung einige Änderungen an der gleichen SP vorgenommen hat. Ich muss den Bugfix auf die Entwicklung anwenden, ohne die Änderungen bei der Entwicklung zu verlieren.SQL Server-Objekte (Schema vergleichen mit Merge)

Verwenden von SQL Schema Compare in Visual Studio 2015 führt keine Codezusammenführung durch, sondern ersetzt die Version direkt.

Meine Frage ist, welche anderen Tools sind auf dem Markt, um diese Art von Szenarien zu erhalten?

+0

Ich nehme an, Sie haben eine Art Quellcodeverwaltung (wie TFS)? Ich würde sagen, dass das Zusammenführen von Codes eine Aufgabe für Ihr Versionskontrollsystem ist. –

+0

ja wir verwenden TFS, aber gibt es noch etwas, das wir nur für SQL-Objekte verwenden können? Ich habe versucht Redgate, aber sie haben kein Werkzeug wie das – carlosm

+0

Ok, wir nur in unsere SP: s als Textdateien einchecken und dann TFS kann die Zusammenführung tun. Wir haben ein separates Deploy-System für db-changes. Ich weiß nicht, wie ich dir dabei helfen soll. –

Antwort

3

Hier gibt es keine richtige Antwort. Sie haben einen Konflikt zwischen Umgebungen erstellt, und die einzige Möglichkeit, dies zu beheben, besteht darin, die Quelle jeder Version zu vergleichen und die Unterschiede manuell zusammenzuführen.

Obwohl streng außer Thema für Stack Overflow, würde ich eine Anwendung namens Beyond Compare für alle Arten von Dateivergleichen empfehlen. Es schneidet jedoch bei Textvergleichen hervorragend ab.

Alternativ haben Sie erwähnt, dass Sie TFS verwenden. Unter der Annahme, dass die Entwicklungsänderungen in einem Entwicklungszweig eingecheckt wurden, könnten Sie einen Zweig für den Hotfix erstellen, obwohl Sie von einem früheren Check-in aus Ihre Änderungen übernommen und dann wieder zusammengeführt haben. Dies wird einen Konflikt darstellen, der manuell viel nach Beyond Compare korrigieren muss, aber dann behalten Sie den Konfliktverlauf in Ihrer Versionskontrolle bei.

bearbeiten: die folgenden gif erklärt der Prozess besser als ich es kann:

enter image description here Source

+0

danke Chris – carlosm

3

Späte Antwort, aber ich hoffe, es wird auf neue Leser

ich nützlich sein ist kürzlich auf das neue kostenlose Tool ApexSQL Compare gestoßen, das Dateien und Ordner vergleicht und zusammenführt. Werkzeug kann in SSMS/VS integrieren und sieht wie folgt aus:

Merge view screenshot

Dieses Tool Merge Script erstellen wird, die Bug-Fix enthalten wird und Änderungen auf dem gleichen sp, aber das Skript kann nur manuell ausgeführt werden. Um dieses Script auch manuell auszuführen, sollte die CREATE PROCEDURE-Anweisung in ALTER PROCEDURE geändert werden.