¿Hay una manera fácil de agregar un script de migración personalizado a SQL Comparar guiones?

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

  •  21-08-2019
  •  | 
  •  

Pregunta

En mi trabajo en este momento estamos teniendo algunos dolores graves que empujan nuestros cambios de bases de datos a través de entornos. El problema comienza a aparecer cuando se crea una nueva columna no anulable en una tabla existente. La secuencia de comandos SQL que genera Comparar crea la columna como no anulable, por lo que siempre se producirá un error. Tenía la esperanza de que había alguna alternativa a tener que modificar manualmente la secuencia de comandos. ¿Hay alguna forma de evitar esto? Si no, ¿cómo es lo que ustedes manejarlo?

¿Fue útil?

Solución

Crea una tabla:

create table #bingo ( id int )

Agregue un valor:

insert into #bingo values (1)

Añadir una nueva columna:

alter table #bingo add userid int

Rellenar la nueva columna:

update #bingo set userid = 1 where id = 1

Cambie la nueva columna no anulable:

alter table #bingo alter column userid int not null

Usted tendría que modificar manualmente el Redgate comparación de SQL para hacer que funcione de esta manera.

Otros consejos

¿Cómo se va a llenar la columna NOT NULL? No veo cómo SQL comparar realmente podría llegar a una solución ya que no tiene forma de saber cómo se llenarlo.

Se puede crear la columna con un valor predeterminado, a continuación, sólo tiene que añadir una instrucción de actualización al final de los scripts generados para actualizar adecuadamente la columna si tiene alguna fuente de los valores.

añadir un defecto en la nueva columna no nula

cuando se crea una nueva columna no nula, ¿qué valor se deje todas las filas existentes? Si usted no sabe, que el anulable columna.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top