Existe uma maneira fácil de adicionar um script de migração personalizado para scripts de SQL Compare?

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

  •  21-08-2019
  •  | 
  •  

Pergunta

No meu trabalho atualmente estamos tendo algumas dores graves empurrando nossas mudanças de banco de dados entre ambientes. A questão começa a aparecer quando criamos uma nova coluna não anulável em uma tabela existente. O script que SQL Compare gera cria a coluna como não anulável, por isso vai sempre falhar. Eu estava esperando que havia alguma alternativa a ter que editar manualmente o script. Existe alguma maneira de contornar este problema? Se não, como é que vocês lidar com isso?

Foi útil?

Solução

Criar uma tabela:

create table #bingo ( id int )

Adicionar um valor:

insert into #bingo values (1)

Adicionar uma nova coluna:

alter table #bingo add userid int

Preencher a nova coluna:

update #bingo set userid = 1 where id = 1

Alterar a nova coluna não anulável:

alter table #bingo alter column userid int not null

Você teria que editar manualmente o RedGate Sql Comparar para que ele funcione como esta.

Outras dicas

Como você planeja sobre o preenchimento da coluna NOT NULL? Eu não vejo como SQL Compare poderia realmente chegar a uma solução, uma vez que não tem nenhuma maneira de saber como é que você preenchê-lo.

Você pode criar a coluna com um padrão, simplesmente adicionar uma instrução de atualização no final dos scripts gerados para adequadamente atualizar a coluna se você tem alguma fonte para os valores.

adicionar um padrão para a nova coluna não nulo

quando criar uma nova coluna não nulo, qual o valor que todas as linhas existentes começar? Se você não sabe, fazer a anulável coluna.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top