Есть ли простой способ добавить пользовательский сценарий миграции в сценарии SQL Compare? - PullRequest
3 голосов
/ 14 мая 2009

На моей работе в настоящее время мы испытываем серьезные трудности, проталкивая изменения нашей базы данных в разных средах. Проблема начинает проявляться, когда мы создаем новый необнуляемый столбец в существующей таблице. Сценарий, который генерирует SQL Compare, создает столбец как необнуляемый, поэтому он всегда завершится ошибкой. Я надеялся, что есть какая-то альтернатива необходимости вручную редактировать сценарий. Есть ли способ обойти это? Если нет, то как вы, ребята, справляетесь с этим?

Ответы [ 3 ]

0 голосов
/ 14 мая 2009

Создать таблицу:

create table #bingo ( id int )

Добавить значение:

insert into #bingo values (1)

Добавить новый столбец:

alter table #bingo add userid int

Заполните новый столбец:

update #bingo set userid = 1 where id = 1

Изменить новый столбец, чтобы он не обнулялся:

alter table #bingo alter column userid int not null

Вы должны вручную отредактировать RedGate Sql Compare, чтобы он работал следующим образом.

0 голосов
/ 15 мая 2009

добавить значение по умолчанию для нового ненулевого столбца

при создании нового ненулевого столбца, какое значение получают все существующие строки? Если вы не знаете, сделайте столбец обнуляемым.

0 голосов
/ 14 мая 2009

Как вы планируете заполнить столбец NOT NULL? Я не понимаю, как SQL Compare действительно может найти решение, поскольку у него нет возможности узнать, как вы его заполнили.

Вы можете создать столбец с параметром DEFAULT, а затем просто добавить оператор обновления в конце сгенерированных сценариев, чтобы правильно обновить столбец, если у вас есть источник значений.

...