在我的工作中,我们目前正在努力推动跨环境的数据库更改。当我们在现有表上创建新的非可空列时,问题就会出现。 SQL Compare生成的脚本将列创建为不可为空,因此它始终会失败。我希望有一些替代方法可以手动编辑脚本。有没有办法解决这个问题?如果没有,你们怎么处理呢?
答案 0 :(得分:0)
您打算如何填写NOT NULL列?我不知道SQL Compare如何真正提出解决方案,因为它无法知道如何填充它。
您可以使用DEFAULT创建列,然后只需在生成的脚本末尾添加更新语句,以便在您拥有值的某些来源时正确更新列。
答案 1 :(得分:0)
创建一个表格:
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才能使它像这样工作。
答案 2 :(得分:0)
在新的非空列
上添加默认值创建新的非空列时,所有现有行的值是多少?如果您不知道,请将列设为可为空。