私の職場では、現在、データベースの変更を複数の環境にプッシュすることに深刻な問題を抱えています。この問題は、既存のテーブルに新しい非 null 列を作成するときに現れ始めます。SQL Compare が生成するスクリプトは、列を null 非許容として作成するため、常に失敗します。スクリプトを手動で編集しなければならないことに代わる方法があることを望んでいました。これを回避する方法はありますか?そうでない場合、皆さんはどのように対処していますか?
3 に答える
0
新しい非 null 列にデフォルトを追加します
null 以外の新しい列を作成する場合、既存のすべての行はどのような値になりますか? わからない場合は、列をヌル可能にします。
于 2009-05-14T20:51:26.333 に答える
0
NOT NULL 列にどのように入力する予定ですか? SQL Compare が実際にどのように解決策を考え出すことができるかわかりません。なぜなら、それをどのように満たすかを知る方法がないからです。
DEFAULT を使用して列を作成し、値のソースがある場合は、生成されたスクリプトの最後に update ステートメントを追加するだけで列を適切に更新できます。
于 2009-05-14T16:27:34.987 に答える
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
新しい列を null 非許容に変更します。
alter table #bingo alter column userid int not null
このように機能させるには、RedGate Sql Compare を手動で編集する必要があります。
于 2009-05-14T19:55:56.747 に答える