Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ データベース管理 » データベース管理 » SQL Anywhere グラフィカル管理ツール » Sybase Central » [SQL Anywhere 16] プラグイン

 

もう一方と一致させるためのデータベーススキーマの変換

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] にはないのすべてのオブジェクト名 (名前が変更されたテーブルとカラムを含む) は、削除され再作成されるので、その際にデータが失われる場合があります。

 ♦ タスク
  1. Sybase Central の [SQL Anywhere 16] プラグインを使用すると、比較する 2 つのデータベースに接続できます。

  2. [ツール] » [SQL Anywhere 16] » [データベースの比較] をクリックします。

    [データベースの比較] ウィンドウが表示されます。

  3. スキーマを変換するデータベースが [データベース 1] フィールドに指定され、スキーマの変換元データベースが [データベース 2] フィールドに指定されていることを確認します。

  4. [比較] をクリックします。

    [Objects] タブに、データベース内のオブジェクトがリスト化されます。[SQL スクリプト] タブに生成された SQL 文が表示されます。

  5. [Objects] タブで項目をクリックすると、そのオブジェクトの SQL 文の違いを参照できます。背景が赤の場合、オブジェクトの SQL は [データベース 1] のみにあり、背景が緑の場合、オブジェクトの SQL は [データベース 2] のみにあり、背景が青の場合、オブジェクトの SQL は両方のデータベースにあることを示します。

  6. [SQL スクリプト] タブの [Interactive SQL で開く] をクリックすると、[SQL 文] ウィンドウ枠に文を貼り付けた状態で Interactive SQL を開くことができます。文は必要に応じて編集、実行できます。SQL 文を実行すると [データベース 1][データベース 2] と同じにできます。

結果

[データベース 1] のスキーマが [データベース 2] のスキーマと同じになるよう変換されます。

 参照