有没有一种简单的方法可以将自定义迁移脚本添加到SQL Compare脚本中?

时间:2009-05-14 15:40:46

标签: sql migration redgate

在我的工作中,我们目前正在努力推动跨环境的数据库更改。当我们在现有表上创建新的非可空列时,问题就会出现。 SQL Compare生成的脚本将列创建为不可为空,因此它始终会失败。我希望有一些替代方法可以手动编辑脚本。有没有办法解决这个问题?如果没有,你们怎么处理呢?

3 个答案:

答案 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)

在新的非空列

上添加默认值

创建新的非空列时,所有现有行的值是多少?如果您不知道,请将列设为可为空。