Sybase Central を使用して、2 つのデータベーススキーマを比較できます。比較の出力は SQL 文の形式となるため、あるデータベースで実行して、その内容を別のデータベースと同じものにすることができます。
前提条件
両方のデータベースで SELECT ANY TABLE システム権限が必要です。
[データベース 1] のスキーマが [データベース 2] のスキーマと一致するように変換するために実行する必要のある各 SQL 文に必要な権限を持っている必要があります。
生成された SQL スクリプトには、[データベース 1] のスキーマを [データベース 2] のスキーマと同じにするために必要な文が含まれます。スクリプトを実行する前に [データベース 1] はバックアップすることをおすすめします。また、スクリプトの実行中は、データベースに対する他の接続がないことを確認します。
内容と備考
次に示す操作は、この機能を使用して [データベース 1] には実行することはできないため、比較中に生成される SQL 文のリストには含まれていません。これらの操作のいずれかが必要な場合は、生成される SQL 文のリストの一番上に、操作を説明する通知が表示されます。
DB 領域のファイル名の変更
ドメインの変更
リモートサーバの読み込み専用設定の変更
テーブルの DB 領域の変更
グローバルテンポラリテーブルの COMMIT アクションか SHARE BY ALL 設定またはその両方の変更
テーブルまたはグローバルテンポラリテーブルでのカラムの順序の変更
パブリケーションの同期タイプの変更
データベースを比較する際、オブジェクトはオブジェクト ID ではなく、名前、名前と所有者、または名前と所有者の組み合わせで照合されます。[データベース 1] にはある [データベース 2] にはないのすべてのオブジェクト名 (名前が変更されたテーブルとカラムを含む) は、削除され再作成されるので、その際にデータが失われる場合があります。
Sybase Central の [SQL Anywhere 16] プラグインを使用すると、比較する 2 つのデータベースに接続できます。
[ツール] » [SQL Anywhere 16] » [データベースの比較] をクリックします。
[データベースの比較] ウィンドウが表示されます。
スキーマを変換するデータベースが [データベース 1] フィールドに指定され、スキーマの変換元データベースが [データベース 2] フィールドに指定されていることを確認します。
[比較] をクリックします。
[Objects] タブに、データベース内のオブジェクトがリスト化されます。[SQL スクリプト] タブに生成された SQL 文が表示されます。
[Objects] タブで項目をクリックすると、そのオブジェクトの SQL 文の違いを参照できます。背景が赤の場合、オブジェクトの SQL は [データベース 1] のみにあり、背景が緑の場合、オブジェクトの SQL は [データベース 2] のみにあり、背景が青の場合、オブジェクトの SQL は両方のデータベースにあることを示します。
[SQL スクリプト] タブの [Interactive SQL で開く] をクリックすると、[SQL 文] ウィンドウ枠に文を貼り付けた状態で Interactive SQL を開くことができます。文は必要に応じて編集、実行できます。SQL 文を実行すると [データベース 1] を [データベース 2] と同じにできます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |