2017-06-12 3 views
0

Wenn generating a database upgrade using Sql Server Data Tools's sqlpackage.exe, ist es möglich, dass SSDT Code generieren Tabellendaten zu migrieren, wird dies eine neue temporäre Tabelle mit dem gewünschten endgültigen Schema erstellen, die Daten aus der ursprünglichen Tabelle in die neue Tabelle verschieben, die ursprüngliche Tabelle löscht und dann Benennen Sie die temporäre Tabelle so um, dass sie dem Namen der ursprünglichen Tabelle entspricht.Gibt es eine vollständige Liste der Ursachen, die SqlPackage.exe Datenbewegung (Tabellenwiederherstellung) beim Aktualisieren einer Datenbank führt?

Dieser Code in dem Skript kann nach der Anweisung PRINT N'Starting rebuilding table <tablename>'; finden.

ich die meisten der Gründe vorstellen, dass dafür ist aufgrund der Tatsache, dass es kein Atom DDL-Anweisung ist die Änderung durch das Upgrade erforderlich zu erzeugen. Ich habe eine list solcher Fälle für ein anderes ähnliches Werkzeug gefunden. Ich versuche jedoch, eine Dokumentation darüber zu finden, wann SSDT Datenmigration/Tabellenwiederherstellung durchführen wird, da ich einige Situationen gesehen habe, in denen eine DDL verfügbar wäre, um den Job auszuführen, aber SSDT würde immer noch die Tabelle neu erstellen (zum Beispiel wenn ein gruppierter Index geändert wird).

Meine Frage ist: Gibt es irgendwo dokumentiert, wenn SSDT Code für Datenmigration/Tabellenerholung generieren wird?

Antwort

0

Nein, das ist leider nicht dokumentiert. Ich hatte Gelegenheit, die Bewegungsszenarios für Tabellendaten zu überprüfen, wenn ich die Funktion zum Ignorieren der Spaltenreihenfolge in SSDT implementierte. Selbst mit dem Quellcode ist es schwierig, eine vollständige Liste von Situationen zu erstellen, die zu einer Bewegung der Tabellendaten führen, da sie als "sicheres" Fallback für unvorhergesehene oder anderweitig nicht behandelte Situationen behandelt wird.

2

Wenn Sie mehr Kontrolle über die Datenbewegung benötigen, ist ReadyRoll möglicherweise eine gute Option für Sie. Wir unterscheiden uns vom zustandsbasierten Ansatz von SSDT, indem wir die Skripts im Voraus generieren und diese als erstklassige Bereitstellungsartefakte in Ihrem Visual Studio-Projekt einbeziehen. Dies bedeutet, dass Sie die Skripts überprüfen und sie vor allem ändern können, wenn Sie sich entscheiden, dass sie nicht den optimalen Ansatz gewählt haben.

wie SQL Prompt Core ReadyRoll Core Edition ist eine Berechtigung für Visual Studio Enterprise-Benutzer und wird mit dem Data Storage Workload installieren zusammen. Weitere Informationen zu ReadyRoll finden Sie unter on the Redgate website.

Verwandte Themen