Share via


プロジェクトの設定 (変換) (DB2ToSQL)

[プロジェクト設定] ダイアログ ボックスの [変換] ページには、SSMA が DB2 構文を SQL Server 構文に変換する方法をカスタマイズする設定が含まれています。

[変換] ウィンドウは、[プロジェクト設定] ダイアログ ボックスと [既定のプロジェクト設定] ダイアログ ボックスで使用できます。

  • すべての SSMA プロジェクトの設定を指定するには、[ツール] メニューの [既定のプロジェクト設定] をクリックし、[移行ターゲットのバージョン] ドロップダウンから設定を表示/変更する必要がある移行対象のプロジェクト タイプを選択します。さらに左側のウィンドウの下部にある [全般] をクリックし、最後に [変換] をクリックします。

  • 現在のプロジェクトの設定を指定するには、[ツール] メニューの [プロジェクト設定] をクリックし、左側のウィンドウの下部にある [全般] をクリックし、[変換] をクリックします。

変換メッセージ

問題に関するメッセージを生成する

SSMA が変換中に情報メッセージを生成し、[出力] ウィンドウに表示し、変換されたコードに追加するかどうかを指定します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: いいえ

フル モード: いいえ

その他のオプション

ROWNUM 式を整数としてキャストする

SSMA は、ROWNUM 式を変換するときに、式を TOP 句に変換し、その後に式を続けます。 次の例は、DB2 DELETE ステートメントの ROWNUM を示しています。

DELETE FROM Table1

WHERE ROWNUM < expression and Field1 >= 2

次の例は、Transact-SQL として得られる出力を示します。

DELETE TOP (expression-1)

FROM Table1

WHERE Field1>=2

TOP は TOP 句の式が整数に評価される必要があります。 整数が負の場合、ステートメントはエラーを生成します。

  • [はい] を選択すると、SSMA は式を整数としてキャストします。

  • [いいえ] を選択すると、SSMA は変換されたコード内のすべての非整数式をエラーとしてマークします。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/フルモード: いいえ

オプティミスティック モード: はい

既定のスキーマ マッピング

この設定では、DB2 スキーマを SQL Server スキーマにマップする方法を指定します。 この設定では、2 オプションを使用できます:

  1. データベースへのスキーマ: このモードでは、DB2 スキーマ 'sch1' は既定で SQL Server データベース 'sch1' の 'dbo' SQL Server スキーマにマップされます。

  2. スキーマ間: このモードでは、DB2 スキーマ 'sch1' は、接続ダイアログで提供される既定の SQL Server データベースの "sch1" SQL Server スキーマに既定でマップされます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: スキーマからデータベースへ

MERGE ステートメントの変換方法

  • [INSERT、UPDATE、DELETE ステートメントの使用]を選択した場合、SSMA は MERGER ステートメントを INSERT、UPDATE、DELETE ステートメントに変換します。

  • [MERGE ステートメントの使用] を選択した場合、SSMA は SQL Server で MERGE ステートメントを MERGE ステートメントに変換します。

警告

このプロジェクト設定オプションは、SQL Server 2008、SQL Server 2012、SQL Server 2014 でのみ使用できます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: MERGE ステートメントの使用

既定の引数を使用するサブプログラムへの呼び出しの変換

SQL Server 関数は、関数呼び出しでのパラメーターの省略をサポートしていません。 また、SQL Server の関数とプロシージャは、既定のパラメーター値として式をサポートしていません。

  • [はい] を選択し、関数呼び出しでパラメーターが省略された場合、SSMA はキーワードの既定値を関数に挿入し、正しい位置で呼び出します。 その後、呼び出しに警告が表示されます。

  • [いいえ] を選択すると、SSMA によって関数呼び出しがエラーとしてマークされます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

COUNT 関数をCOUNT_BIGに変換する

COUNT 関数が 2,147,483,647 (231-1) を超える値を返す可能性がある場合は、関数を に変換できます。

  • [はい] を選択すると、SSMA によってすべての用途 COUNT_BIG の COUNT が変換されます。

  • [いいえ] を選択した場合、関数は COUNT として残ります。 関数から 231-1 より大きい値が返された場合、SQL Server はエラーを返します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/フルモード: はい

オプティミスティック モード: いいえ

FORALL ステートメントを WHILE ステートメントに変換する

SSMA が PL/SQL コレクション要素の FORALL ループを処理する方法を定義します。

  • [はい] を選択すると、SSMA によって WHILE ループが作成され、コレクション要素が 1 つずつ取得されます。

  • [いいえ] を選択すると、SSMA は nodes() メソッドを使用してコレクションから行セットを生成し、それを 1 つのテーブルとして使用します。 これはより効率的ですが、出力コードの読みやすさが低下します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: いいえ

フル モード: はい

NULL でない列に対する SET NULL 参照アクションを使用して外部キーを変換する

DB2 では外部キー制約を作成できます。この制約では 、参照される列で SET NULL が許可されていないため、アクションを実行できなかった可能性があります。 SQL Server では、このような外部キーの構成は許可されません。

  • [はい] を選択すると、SSMA は DB2 と同様に参照アクションを生成しますが、SQL Server に制約を読み込む前に手動で変更する必要があります。 たとえば、SET NULL の代わりに NO ACTION を使用できます。

  • [いいえ] を選択すると、制約はエラーとしてマークされます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: いいえ

関数呼び出しをプロシージャ呼び出しに変換する

一部の DB2 関数は、自律トランザクションとして定義されているか、SQL Server では無効なステートメントを含みます。 この場合、SSMA によってストアド プロシージャが作成され、ストアド プロシージャをラッパー関数が作成されます。 変換された関数は、実装プロシージャを呼び出します。

SSMA では、ラッパー関数の呼び出しをプロシージャの呼び出しに変換できます。 これにより、読みやすいコードが作成され、パフォーマンスが向上します。 ただし、コンテキストでは常に許可されるとは限りません。たとえば、SELECT リスト内の関数呼び出しをプロシージャ呼び出しに置き換えることはできません。 SSMA には、一般的なケースに対応するいくつかのオプションがあります。

  • [常に] を選択すると、SSMA はラッパー関数呼び出しをプロシージャ呼び出しに変換しようとします。 現在のコンテキストでこの変換が許可されていない場合は、エラー メッセージが生成されます。 これにより、生成されたコードに関数呼び出しは残されません。

  • [可能な限り]を選択すると、SSMA は関数に出力パラメーターがある場合にのみプロシージャ呼び出しに移動します。 移動できない場合は、パラメーターの出力属性が削除されます。 それ以外のすべての場合、SSMA は関数呼び出しを残します。

  • [なし] を選択すると、SSMA はすべての関数呼び出しを関数呼び出しとして残します。 パフォーマンス上の理由から、この選択が受け入れられない場合があります。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: 可能な場合

LOCK TABLE ステートメントの変換

SSMA では、多くの LOCK TABLE ステートメントをテーブル ヒントに変換できます。 SSMA は、PARTITION、SUBPARTITION @dblink、NOWAIT 句を含む LOCK TABLE ステートメントを変換できず、そのようなステートメントを変換エラー メッセージでマークします。

  • [はい] を選択すると、SSMA はサポートされている LOCK TABLE ステートメントをテーブル ヒントに変換します。

  • [いいえ] を選択すると、SSMA はすべての LOCK TABLE ステートメントに変換エラー メッセージをマークします。

次の表は、SSMA が DB2 ロック モードを変換する方法を示しています。

DB2 ロック モード SQL Server テーブル ヒント
ROW SHARE ROWLOCK、HOLDLOCK
ROW EXCLUSIVE ROWLOCK、XLOCK、HOLDLOCK
SHARE UPDATE = ROW SHARE ROWLOCK、HOLDLOCK
共有 TABLOCK、HOLDLOCK
SHARE ROW EXCLUSIVE TABLOCK、XLOCK、HOLDLOCK
EXCLUSIVE TABLOCKX、HOLDLOCK

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

REF CURSOR OUT パラメーターの OPEN-FOR ステートメントを変換する

DB2 では、OPEN-FOR ステートメントを使用して、REF CURSOR タイプのサブプログラムの OUT パラメーターに結果セットを戻すことができます。 SQL Server では、ストアド プロシージャは SELECT ステートメントの結果を直接返します。

SSMA では、多くの OPEN-FOR ステートメントを SELECT ステートメントに変換できます。

  • [はい] を選択すると、SSMA によって OPEN-FOR ステートメントが SELECT ステートメントに変換され、結果セットがクライアントに返されます。

  • [いいえ] を選択すると、変換されたコードと出力ペインにエラー メッセージが SSMA によって生成されます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

レコードを区切り変数のリストとして変換する

SSMA では、DB2 レコードを個別の変数に変換し、特定の構造を持つ XML 変数に変換できます。

  • [はい] を選択した場合、SSMA は可能であれば、レコードを分離変数の一覧に変換します。

  • [いいえ] を選択すると、SSMA はレコードを特定の構造の XML 変数に変換します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

SUBSTR 関数呼び出しを SUBSTRING 関数呼び出しに変換する

SSMA では、パラメーターの数に応じて、DB2 SUBSTR 関数呼び出しを SQL Server 部分文字列 関数呼び出しに変換できます。 SSMA が SUBSTR 関数呼び出しを変換できない場合、またはパラメーターの数がサポートされていない場合、SSMA は SUBSTR 関数呼び出しをカスタム SSMA 関数呼び出しに変換します。

  • [はい] を選択すると、SSMA は 3 つのパラメーターを使用する SUBSTR 関数呼び出しを SQL Server substring に変換します。 他の SUBSTR 関数は、カスタム SSMA 関数を呼び出すために変換されます。

  • [いいえ] を選択すると、SSMA は SUBSTR 関数呼び出しをカスタム SSMA 関数呼び出しに変換します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: はい

フル モード: いいえ

サブタイプの変換

SSMA では、次の 2 つの方法で PL/SQL サブタイプを変換できます。

  • [はい] を選択すると、SSMA はサブタイプから SQL Server ユーザー定義型を作成し、このサブタイプの各変数に使用します。

  • [いいえ] を選択すると、SSMA はサブタイプのすべてのソース宣言を基になる型に置き換え、通常どおり結果を変換します。 この場合、SQL Server では追加の型は作成されません

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: いいえ

シノニムの変換

次の DB2 オブジェクトのシノニムを SQL Server に移行できます。

  • テーブルとオブジェクト テーブル

  • ビューとオブジェクト ビュー

  • システム ストアド プロシージャとシステム関数

  • 具体化されたビュー

以下の DB2 オブジェクトのシノニムは解決され、直接オブジェクト参照に置き換えられます。

  • シーケンス

  • パッケージ

  • Java クラス スキーマ オブジェクト

  • ユーザー定義オブジェクト型

他のシノニムは移行できません。 SSMA では、シノニムとシノニムを使用するすべての参照に関するエラー メッセージが生成されます。

  • [はい] を選択すると、SSMA は前の一覧に従って SQL Server シノニムと直接オブジェクト参照を作成します。

  • [いいえ] を選択すると、SSMA はここに記載されているすべてのシノニムの直接オブジェクト参照を作成します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

TO_CHAR (日付、形式) を変換する

SSMA では、DB2 TO_CHAR (日付、形式) を sysdb データベースからプロシージャに変換できます。

  • [TO_CHAR_DATE 関数の使用] を選択した場合、SSMA は変換に英語を使用して TO_CHAR_DATE 関数に TO_CHAR(date, format) を変換します。

  • [TO_CHAR_DATE_LS 関数 (NLS ケア) の使用] を選択した場合、SSMA は変換にセッションを使用して TO_CHAR_DATE_LS 関数に TO_CHAR(date, format) を変換します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: TO_CHAR_DATE 関数を使用する

フル モード: TO_CHAR_DATE_L S関数の使用 (NLS ケア)

トランザクション処理ステートメントの変換

SSMA は、DB2 トランザクション処理ステートメントを変換できます。

  • [はい] を選択すると、SSMA は DB2 トランザクション処理ステートメントを SQL Server ステートメントに変換します。

  • [いいえ] を選択すると、SSMA はトランザクション処理ステートメントを変換エラーとしてマークします。

注意

DB2 はトランザクションを暗黙的に開きます。 SQL Server でこの動作をエミュレートするには、トランザクションを開始する場所に BEGIN TRANSACTION ステートメントを手動で追加する必要があります。 または、セッションの開始時に SET IMPLICIT_TRANSACTIONS ON コマンドを実行することもできます。 SSMA は、自律トランザクションを使用してサブルーチンを変換するときに自動的に SET IMPLICIT_TRANSACTIONS ON を追加されます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

ORDER BY 句で DB2 の null 動作をエミュレートする

NULL 値は、SQL Server と DB2 では順序が異なります。

  • SQL Server では、NULL 値は順序付きリスト内の最小値です。 昇順のリストでは、NULL 値が最初に表示されます。

  • DB2 では、NULL 値は順序付きリストの中で最も高い値です。 既定では、NULL 値は昇順リストの最後に表示されます。

  • DB2 には NULLS FIRST 句と NULLS LAST 句があり、これにより DB2 が NULL を順序付ける方法を変更できます。

SSMA では、NULL 値をチェックすることで、DB2 ORDER BY の動作をエミュレートできます。 次に、最初に指定した順序で NULL 値を並べ替え、次に他の値で並べ替えます。

  • [はい] を選択すると、SSMA は DB2 ORDER BYの動作をエミュレートする方法で DB2 ステートメントを変換します。

  • [いいえ] を選択すると、SSMA は DB2 ルールを無視し、NULLS FIRST 句 および NULLS LAST 句が検出されたときにエラー メッセージを生成します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: いいえ

フル モード: はい

SELECT で行数の例外をエミュレートする

INTO 句を含む SELECT ステートメントで行が返されない場合、DB2 はNO_DATA_FOUND例外を発生させます。 ステートメントが 2 つ以上の行を返す場合、TOO_MANY_ROWS 例外が発生します。 SQL Server で変換されたステートメントでは、行数が 1 つのステートメントと異なる場合、例外は発生しません。

  • [はい] を選択した場合、SSMA は各 SELECT ステートメントの後に sysdb プロシージャ db_error_exact_one_row_checkへの呼び出しを追加します。 この手順では、NO_DATA_FOUNDとTOO_MANY_ROWS例外をエミュレートします。 これが既定値であり、可能な限り近い DB2 動作を再現できます。 ソース コードにこれらのエラーを処理する例外ハンドラーがある場合は、常に [はい] を選択する必要があります。 SELECT ステートメントがユーザー定義関数内で発生した場合、ストアド プロシージャの実行と例外の発生は SQL Server 関数コンテキストと互換性がないため、このモジュールはストアド プロシージャに変換されることに注意してください。

  • [いいえ] を選択した場合、例外は生成されません。 これは、SSMA がユーザー定義関数を変換し、SQL Server で関数のままにしたい場合に便利です

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

DBMS_SQL.PARSE のエラーを生成します。

  • [エラー] を選択した場合、SSMA は DBMS_SQL.PARSE の変換時にエラーを生成します。

  • [警告] を選択した場合、SSMA は DBMS_SQL.PARSE の変換時に警告を生成します。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: エラー

今すぐに ROWID 列を生成

SSMA は、SQL Server でテーブルを作成するときに、ROWID 列を作成できます。 データが移行されると、各行は newid() 関数によって生成された新しい UNIQUEIDENTIFIER 値を取得します。

  • [はい] を選択すると、すべてのテーブルに ROWID 列が作成され、SQL Server によって挿入値として GUID が生成されます。 SSMA テスターの使用を計画している場合は、必ず [はい] を選びます

  • [いいえ] を選択した場合、ROWID 列はテーブルに追加されません。

  • ROWID 列 トリガーを含むテーブルに対してトリガーが追加された テーブルの ROWID 列を 追加します。

警告

SQL Server 2005、SQL Server 2008、SQL Server 2012、2014 の場合の既定の設定は、トリガーを含むテーブルの ROWID 列の追加です。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: トリガーを含むテーブルの ROWID 列を追加する

フル モード: はい

ROWID 列で一意のインデックスを生成する

SSMA が ROWID で生成された列に対して一意のインデックス列を生成するかどうかを指定します。 オプションが "YES" に設定されている場合、一意のインデックスが生成され、"NO" に設定されている場合、ROWID 列に一意のインデックスは生成されません。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

ローカル モジュールの変換

DB2 入れ子になったサブプログラム (スタンドアロンのストアド プロシージャまたは関数で宣言) 変換の型を定義します。

  • [インライン] を選択すると、入れ子になったサブプログラム呼び出しが本文に置き換えられます。

  • ストアド プロシージャを選択すると、入れ子になったサブプログラムが SQL Server ストアド プロシージャに変換され、その呼び出しはこのプロシージャ呼び出しで置き換えられます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: インライン

文字列連結で ISNULL を使用する

文字列連結に NULL 値が含まれている場合、DB2 と SQL Server は異なる結果を返します。 DB2 は、NULL 値を空の文字セットのように扱います。 SQL Server は NULL を返します。

  • [はい] を選択すると、SSMA によって DB2 連結文字 (||) が SQL Server 連結文字 (+) に置き換えられます。 SSMA では、連結の両側で NULL 値の式もチェックされます。

  • [いいえ] を選択した場合、SSMA は連結文字を置き換えますが、NULL 値をチェックしません。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

REPLACE 関数呼び出しで ISNULL を使用する

ISNULL ステートメントは、REPLACE 関数呼び出しで DB2 の動作をエミュレートするために使用されます。 この設定には、次のオプションがあります:

  • YES

  • 使用不可

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: いいえ

フル モード: はい

CONCAT 関数呼び出しで ISNULL を使用する

ISNULL ステートメントは、CONCAT 関数呼び出しで DB2 の動作をエミュレートするために使用されます。 この設定には、次のオプションがあります:

  • YES

  • 使用不可

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: いいえ

フル モード: はい

可能な場合はネイティブ変換関数を使用する

  • [はい] を選択した場合、SSMA は可能な限りネイティブ変換関数に TO_CHAR(date, format) を変換します。

  • [いいえ] を選択した場合、SSMA はTO_CHAR (日付、形式) をTO_CHAR_DATEまたはTO_CHAR_DATE_LSに変換します ([TO_CHAR (日付、形式) の変換] オプションで定義されます)。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック モード: はい

フル モード: いいえ

SELECT...INTO を レコードレコード変数に変換するときに、SELECT...FOR XML を使います

レコード変数を選択するときに XML 結果セットを生成するかどうかを指定します。

  • [はい] を選択すると、SELECT ステートメントは XML を返します。

  • [いいえ] を選択すると、SELECT ステートメントによって結果セットが返されます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: いいえ

RETURNING 句の変換

DELETE ステートメントの RETURNING 句を OUTPUT に変換する

DB2 は、削除された値をすぐに取得する方法として RETURNING 句を提供します。 SQL Server では、その機能に OUTPUT 句が用意されています。

  • [はい] を選択すると、SSMA は DELETE ステートメント内のRETURNING 句を OUTPUT 句に変換します。 テーブルのトリガーによって値が変更される可能性があるため、SQL Server の戻り値は DB2 の場合とは異なる場合があります。

  • [いいえ] を選択すると、SSMA によって DELETE ステートメントの前に SELECT ステートメントが生成され、返された値が取得されます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

INSERT ステートメントの RETURNING 句を OUTPUT に変換する

DB2 は、挿入された値をすぐに取得する方法として RETURNING 句を提供します。 SQL Server では、その機能に OUTPUT 句が用意されています。

  • [はい] を選択すると、SSMA は INSERT ステートメント内の RETURNING 句を OUTPUT 句に変換します。 テーブルのトリガーによって値が変更される可能性があるため、SQL Server の戻り値は DB2 の場合とは異なる場合があります。

  • [いいえ] を選択した場合、SSMA は参照テーブルから値を挿入して選択することで DB2 機能をエミュレートします。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

UPDATE ステートメントの RETURNING 句を OUTPUT に変換する

DB2 は、更新された値をすぐに取得する方法として RETURNING 句を提供します。 SQL Server では、その機能に OUTPUT 句が用意されています。

  • [はい] を選択すると、SSMA は UPDATE ステートメント内の RETURNING 句を OUTPUT 句に変換します。 テーブルのトリガーによって値が変更される可能性があるため、SQL Server の戻り値は DB2 の場合とは異なる場合があります。

  • [いいえ] を選択すると、SSMA によって UPDATE ステートメントの後に SELECT ステートメントが生成され、返された値が取得されます。

[モード] ボックスで変換モードを選択すると、SSMA によって次の設定が適用されます:

既定/オプティミスティック/フル モード: はい

シーケンス の変換

シーケンス ジェネレーターの変換

DB2 では、シーケンスを使用して一意の ID を生成できます。

SSMA はシーケンスを次のように変換できます。

  • SQL Server シーケンス ジェネレーターの使用 (このオプションは、SQL Server 2012 と SQL Server 2014 に変換する場合にのみ使用できます)。

  • SSMA シーケンス ジェネレーターの使用。

  • 列 ID の使用。

SQL Server 2012 または SQL Server 2014 に変換する場合の既定のオプションは、SQL Server シーケンス ジェネレーターを使用することです。 ただし、SQL Server 2012 と SQL Server 2014 では、現在のシーケンス値の取得はサポートされていません (DB2 シーケンスの変更方法など)。 DB2 シーケンスの currval メソッドの移行に関するガイダンスについては、SSMA チームのブログ サイトを参照してください。

SSMA には、DB2 シーケンスを SSMA シーケンス エミュレーターに変換するオプションもあります。 これは、2012 より前の SQL Server に変換する場合の既定のオプションです

最後に、テーブル内の列に割り当てられたシーケンスを SQL Server ID 値に変換することもできます。 DB2 タブの ID 列へのシーケンス間のマッピングを指定する必要があります。

トリガーの外部で CURRVAL を変換する

[シーケンス ジェネレーターの変換] が [列 ID の使用] に設定されている場合にのみ表示されます。 DB2 シーケンスはテーブルとは別のオブジェクトであるため、シーケンスを使用する多くのテーブルでは、トリガーを使用して新しいシーケンス値を生成と挿入します。 SSMA は、これらのステートメントをコメントアウトするか、コメントアウトによってエラーが生成される場合にエラーとしてマークします。

  • [はい] を選択すると、SSMA は 変換されたシーケンスの外部トリガーへのすべての参照を警告でマークします。

  • [いいえ] を選択すると、SSMA は CURRVAL 変換されたシーケンスの外部トリガーへのすべての参照をエラーでマークします。

参照

ユーザー インターフェイス リファレンス (DB2ToSQL)