Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays データベース移行ソフトウェア

[DDL] サブセクション

このサブセクションではDDLとSQLスクリプトの生成の調整について説明します

このオプションはターゲットデータベースが Oracle で GENERATE_DROP_TABLE がYesに設定された場合のみ有効です。デフォルト値は Noです。

このオプションはテーブルの再作成を行わず、インデックス生成のスクリプトが再実行される場合に便利です。

いくつかのデータベース (Oracle, Sybase, Access 等) では、NOT NULL制約付きのプライマリキーカラムを指定せずテーブルを生成し、後でプライマリキーを追加する時にカラムをNOT NULLに変更する事ができます。他のデータベース (IBM DB2, Microsoft SQL Server, MySQL 等) では NOT NULL制約付きのプライマリキーカラムを先に生成する必要があります。

デフォルト値は Yes (全てのプライマリキーカラムは NOT NULL 制約付きで生成)。設定可能な値 - Yes, No

Identity カラムは一般的にテーブルのユニークなロー識別子としてプライマリキー制約と共に使用されます。

もし、プライマリキーとユニーク制約と同じ定義のユニークインデクスが先に作成されていた場合、データベースはそれらのインデクスをプライマリキーとユニーク制約として使用します。

PK_UNIQUE_INDEXES=ALWAYS が指定された場合、プライマリおよびユニーク制約のインデクススクリプトは常に生成されます。これはプライマリキーとユニーク制約を作成する前にインデクスを作るのに使われます。

ソースデータベースで識別子 (table and column names など) として使用可能な文字がターゲットデータベースでは使用できない場合があります。

例えば、Microsoft SQL Serverでは @ を識別子に使用できますが、Oracle では使用できません。

もしこのオプションになにも値が指定されず、"remove_not_allowed_chars=no"である場合、識別子に使用不可な文字は全てターゲットデータベースで使用可能になります。

もし、Yes が指定された場合、全ての使用不可文字はターゲットデータベースの識別子から削除されます。

デフォルト値は Yes です。設定可能な値 - Yes, No。

ソースデータベースの識別子の先頭文字がターゲットデータベースでは許容されない事があります。

例えば、Microsoft SQL Server の識別子の先頭に _ (underscore) を使用できますが、Oracle の識別子は不可です。

もし、このオプションになにも指定されないか "remove_not_allowed_chars_fpos=no"である場合、識別子の先頭の使用不可文字はターゲットデータベースでもそのまま残されます。

もし、Yes が指定された場合、識別子の先頭の使用不可文字をターゲットデータベースでは削除されます。

デフォルト値は Yes です。設定可能な値は - Yes, No です。

もし、Yes が指定された場合、SQLWays はターゲットデータベースの識別子の最大長を超える識別子を切り詰めます。もし切り詰めた識別子の名前が重複した場合、SQLWays は識別子の最後の文字 を "2" から始まる昇順の数字で置き換えます(最初の識別子以降)。

例えば、もしSQLWaysが識別子の切り捨てを行った際、"home_phone_numbers" のような2つの同一の識別子名が発生した場合、"home_phone_numbers" および "home_phone_number2" に変換されます。

もし、No が指定された場合、SQLWays はターゲットデータベースの最大長を超える識別子の切り捨ては行いません。

デフォルト値はYes です。設定可能な値は - Yes, No です。

もし、Yes が指定され、識別子がターゲットデータベースの識別子の最大長を超える場合、SQLWays は先ず最初に非英数文字を全て削除します。それでも識別子が最大長を超えている場合には切り詰めを行います。もし、No が指定された場合、SQLWays は非英数文字を削除せずすぐに切り詰めを行います。

例えば、もし Yes が指定された場合、"regional_customer_account_number#" (33 文字) のようなSQL Server の識別子は "regionalcustomeraccountnumber" (29 文字) に変換されます。

デフォルト値は Yes です。設定可能な値は - Yes, Noです。

もし ANSI_QUOTED_IDENTIFIER が OFFの場合、識別子を引用符で囲むことはできず、Transact-SQL の識別子のルールに従う必要があります。リテラルは単一または二重引用符で囲むことができます。

ANSI_QUOTED_IDENTIFIER のデフォルト値は ONです。このオプションは MSSQL および Sybase ASE で有効です。

SQLWays wizard でDDLオプションを指定するには:


Table of ContentsPreviousNext
Ispirer             Ispirer
Copyright © 1999-2015 Ispirer Systems Ltd. Ispirer and SQLWays are trademarks of Ispirer Systems Ltd. All other product names may be trademarks of the respective companies. All rights reserved.