私は開発環境内で作業されているいくつかのテーブルを用意して、本番環境に移行しました。それらが本番環境に存在しない場合は、SSMSからテーブル作成スクリプトを生成して実行するだけです。ただし、テーブルが本番環境にすでに存在する場合がありますが、必要なのは追加の列または制約だけです。問題は何が変わったのかを正確に知ることです。テーブルを作成するか、変更された/新しいカラムのみを追加する
SQLにCREATE TABLE
ステートメントを既存のテーブルと比較させ、変更されたものだけを適用する方法はありますか?基本的に私は以下のことをやろうとしており、SQLはテーブルがすでに存在すると正しく文句を言う。
ALTER
クエリを手作業で書く必要があります。実際の例では、膨大な量のカラムのために難しいでしょう。何が変わったのかを見るためのより良い/簡単な方法はありますか?これには、2つの別々のデータベースサーバーが含まれています。
CREATE TABLE suppliers
(supplier_id int NOT NULL,
supplier_name char(50) NOT NULL,
contact_name char(50),
CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)
);
CREATE TABLE suppliers
(supplier_id int NOT NULL,
supplier_name char(50) NOT NULL,
contact_name char(50),
contact_number char(20), --this has been added
CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)
);
また、データが失われる可能性があるため、削除および再作成はできません。
ありがとうございます。私は変更スクリプトの生成をテストしたばかりで、変更が反映されています。それはこの目的のために十分です!私はコードとデータベースの両方でソース管理を採用したいと思いますが、私はこれらのタイプの機能をサポートしていないベンダーのSDKにはかなりの制限があります。 –