Est-il un moyen facile d'ajouter un script de migration personnalisée à SQL Comparer les scripts?

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

  •  21-08-2019
  •  | 
  •  

Question

A mon travail que nous rencontrons actuellement des douleurs graves qui poussent nos changements de base de données dans les environnements. La question commence à se manifester lorsque nous créons une nouvelle colonne non annulable sur une table existante. Le script SQL qui génère crée Comparer la colonne comme non annulable, donc il échouera toujours. J'espérais qu'il y avait une alternative à avoir à modifier manuellement le script. Est-il possible de contourner ce problème? Sinon, comment les gars ne vous gérer?

Était-ce utile?

La solution

Créer une table:

create table #bingo ( id int )

Ajoutez une valeur:

insert into #bingo values (1)

Ajouter une nouvelle colonne:

alter table #bingo add userid int

Peupler la nouvelle colonne:

update #bingo set userid = 1 where id = 1

Modifier la nouvelle colonne à ne pas annulable:

alter table #bingo alter column userid int not null

Vous devez modifier manuellement le Redgate Sql Comparer pour le faire fonctionner comme ça.

Autres conseils

Comment comptez-vous sur la colonne de remplissage NOT NULL? Je ne vois pas comment SQL Comparer pourrait vraiment trouver une solution car il n'a aucun moyen de savoir comment vous le remplir.

Vous pouvez créer la colonne avec un DEFAULT, puis ajoutez simplement une déclaration de mise à jour à la fin des scripts générés pour mettre à jour correctement la colonne si vous avez une source pour les valeurs.

ajouter un défaut sur la nouvelle colonne non nulle

lors de la création d'une nouvelle colonne non nulle, quelle valeur toutes les lignes existantes se? Si vous ne connaissez pas, faites la colonne nullable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top