在我的工作中,我们目前在跨环境推送数据库更改时遇到了一些严重的问题。问题开始出现在我们在现有表上创建新的非空列时。SQL Compare生成的脚本将该列创建为非空,因此它将始终失败。我希望有一些替代方法,而不必手动编辑脚本。是否有任何方法可以解决这个问题?如果没有,你们是如何处理的?
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才能使其像这样工作。
在新的非空列上添加默认值
当创建一个新的非空列时,所有现有行将获得什么值?如果您不知道,请将该列设置为可空。