Gibt es eine einfache Möglichkeit, eine benutzerdefinierte Migration Skript SQL Vergleichen Skripte hinzufügen?

StackOverflow https://stackoverflow.com/questions/864107

  •  21-08-2019
  •  | 
  •  

Frage

Bei meiner Arbeit sind wir mit derzeit einige ernsthafte Schmerzen unserer Datenbank Veränderungen in Umgebungen schieben. Das Problem beginnt, bis zu zeigen, wenn wir eine neue Nicht-Nullable-Spalte in einer vorhandenen Tabelle erstellen. Das Skript, das Vergleichen von SQL erzeugt schafft die Spalte als Nicht-NULL-Werte zulässt, so wird es immer scheitern. Ich hatte gehofft, dass es eine Alternative bestand darin, dass sie manuell das Skript bearbeiten. Gibt es eine Möglichkeit, dies zu umgehen? Wenn nicht, wie es euch umgehen?

War es hilfreich?

Lösung

Erstellen

eine Tabelle:

create table #bingo ( id int )

Fügen Sie Wert:

insert into #bingo values (1)

Fügen Sie eine neue Spalte:

alter table #bingo add userid int
Bestücken Sie

die neue Spalte:

update #bingo set userid = 1 where id = 1

Ändern Sie die neue Spalte nicht auf NULL festlegbare:

alter table #bingo alter column userid int not null

Sie müssen manuell die RedGate Sql bearbeiten vergleichen, um es wie dies funktioniert.

Andere Tipps

Wie wollen Sie die NOT NULL-Spalte auf Füllung? Ich sehe nicht, wie wirklich vergleichen SQL mit einer Lösung kommen könnte, da es keine Möglichkeit zu wissen hat, wie Sie es füllen würden.

Sie könnten die Spalte mit einem Standard erstellen, dann einfach eine Update-Anweisung am Ende der generierten Skripte hinzufügen richtig um die Spalte zu aktualisieren, wenn Sie eine Quelle für die Werte haben.

fügen Sie einen Standard auf die neue nicht null Spalte

, wenn eine neue nicht null Spalte erstellen, welchen Wert Sie alle vorhandenen Zeilen bekommen? Wenn Sie nicht wissen, stellen die Spalte NULL-Werte zulässt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top