프로젝트 설정(변환)(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 스키마에 매핑되는 방법을 지정합니다. 이 설정에서는 다음 두 가지 옵션을 사용할 수 있습니다.

  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는 MERGE 문을 SQL Server의 MERGE 문으로 변환합니다.

경고

이 프로젝트 설정 옵션은 SQL Server 2008, SQL Server 2012, SQL Server 2014에서만 사용할 수 있습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: MERGE 문 사용

기본 인수를 사용하는 하위 프로그래밍으로 호출 변환

SQL Server 함수는 함수 호출에서 매개 변수 누락을 지원하지 않습니다. 또한 SQL Server 함수 및 프로시저는 식을 기본 매개 변수 값으로 지원하지 않습니다.

  • 예를 선택하고 함수 호출에서 매개 변수를 생략하면 SSMA는 키워드 기본값을 함수에 삽입하고 올바른 위치에 호출합니다. 그런 다음 호출을 경고로 표시합니다.

  • 아니요를 선택하면 SSMA는 함수 호출을 오류로 표시합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

COUNT 함수를 COUNT_BIG 변환

COUNT 함수가 2 31-1인 2,147,483,647보다 큰 값을 반환할 가능성이 있는 경우 함수를 COUNT_BIG 변환해야 합니다.

  • 예를 선택하면 SSMA는 COUNT의 모든 사용을 COUNT_BIG 변환합니다.

  • 아니요를 선택하면 함수는 COUNT로 유지됩니다. 함수가 231-1보다 큰 값을 반환하는 경우 SQL Server에서 오류를 반환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/전체 모드:

낙관적 모드: 아니요

FORALL 문을 WHILE 문으로 변환

SSMA가 PL/SQL 컬렉션 요소에서 FORALL 루프를 처리하는 방법을 정의합니다.

  • 예를 선택하면 SSMA는 컬렉션 요소가 하나씩 검색되는 WHILE 루프를 만듭니다.

  • 아니요를 선택하면 SSMA는 nodes( ) 메서드를 사용하여 컬렉션에서 행 집합을 생성하고 단일 테이블로 사용합니다. 이는 더 효율적이지만 출력 코드를 읽을 수 없게 만듭니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요

전체 모드:

NULL이 아닌 열에서 SET NULL 참조 작업을 사용하여 외식 키 변환

DB2를 사용하면 참조된 열에서 NULL이 허용되지 않으므로 SET NULL 작업을 수행할 수 없는 외래 키 제약 조건을 만들 수 있습니다. SQL Server는 이러한 외래 키 구성을 허용하지 않습니다.

  • 예를 선택하면 SSMA는 DB2와 같이 참조 작업을 생성하지만 SQL Server에 제약 조건을 로드하기 전에 수동으로 변경해야 합니다. 예를 들어 SET NULL 대신 NO ACTION을 선택할 수 있습니다.

  • 아니요를 선택하면 제약 조건이 오류로 표시됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요

함수 호출을 프로시저 호출로 변환

일부 DB2 함수는 자율 트랜잭션으로 정의되거나 SQL Server에서 유효하지 않은 문을 포함합니다. 이러한 경우 SSMA는 프로시저와 프로시저의 래퍼인 함수를 만듭니다. 변환된 함수는 구현 프로시저를 호출합니다.

SSMA는 래퍼 함수에 대한 호출을 프로시저 호출로 변환할 수 있습니다. 이렇게 하면 더 읽기 쉬운 코드가 생성되고 성능이 향상될 수 있습니다. 그러나 컨텍스트에서 항상 허용하지는 않습니다. 예를 들어 SELECT 목록의 함수 호출을 프로시저 호출로 바꿀 수 없습니다. SSMA에는 일반적인 사례를 다루는 몇 가지 옵션이 있습니다.

  • Always를 선택하면 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
공유 업데이트 = 행 공유 ROWLOCK, HOLDLOCK
SHARE 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는 DB2 레코드를 개별 변수로 변환하고 특정 구조의 XML 변수로 변환할 수 있습니다.

  • 예를 선택하면 SSMA는 가능한 경우 레코드를 별도의 변수 목록으로 변환합니다.

  • 아니요를 선택하면 SSMA는 레코드를 특정 구조의 XML 변수로 변환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

SUBSTR 함수 호출을 SUBSTRING 함수 호출로 변환

SSMA는 매개 변수 수에 따라 DB2 SUBSTR 함수 호출을 SQL Server 부분 문자열 함수 호출로 변환할 수 있습니다. SSMA가 SUBSTR 함수 호출을 변환할 수 없거나 매개 변수 수가 지원되지 않는 경우 SSMA는 SUBSTR 함수 호출을 사용자 지정 SSMA 함수 호출로 변환합니다.

  • 예를 선택하면 SSMA는 세 개의 매개 변수를 사용하는 SUBSTR 함수 호출을 SQL Server 부분 문자열로 변환합니다. 다른 SUBSTR 함수는 사용자 지정 SSMA 함수를 호출하도록 변환됩니다.

  • 아니요를 선택하면 SSMA는 SUBSTR 함수 호출을 사용자 지정 SSMA 함수 호출로 변환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:

전체 모드: 아니요

하위 형식 변환

SSMA는 다음 두 가지 방법으로 PL/SQL 하위 형식을 변환할 수 있습니다.

  • 예를 선택하면 SSMA는 하위 형식에서 SQL Server 사용자 정의 형식을 만들고 이 하위 형식의 각 변수에 사용합니다.

  • 아니요를 선택하면 SSMA는 하위 형식의 모든 원본 선언을 기본 형식으로 대체하고 평소와 같이 결과를 변환합니다. 이 경우 SQL Server에 추가 형식이 만들어지지 않습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요

동의어 변환

다음 DB2 개체의 동의어는 SQL Server로 마이그레이션할 수 있습니다.

  • 테이블 및 개체 테이블

  • 뷰 및 개체 뷰

  • 저장 프로시저 및 함수

  • 구체화된 보기

다음 DB2 개체의 동의어는 개체에 대한 직접 참조로 바꿀 수 있습니다.

  • 시퀀스

  • 패키지

  • Java 클래스 스키마 개체

  • 사용자 정의 개체 형식

다른 동의어는 마이그레이션할 수 없습니다. SSMA는 동의어 및 동의어를 사용하는 모든 참조에 대한 오류 메시지를 생성합니다.

  • 예를 선택하면 SSMA는 이전 목록에 따라 SQL Server 동의어 및 직접 개체 참조를 만듭니다.

  • 아니요를 선택하면 SSMA는 여기에 나열된 모든 동의어에 대한 직접 개체 참조를 만듭니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

TO_CHAR(date, format) 변환

SSMA는 DB2 TO_CHAR(날짜, 형식)를 sysdb 데이터베이스의 프로시저로 변환할 수 있습니다.

  • TO_CHAR_DATE 함수 사용을 선택하면 SSMA는 변환을 위해 TO_CHAR(날짜, 형식)를 TO_CHAR_DATE 함수로 변환합니다.

  • TO_CHAR_DATE_LS 함수 사용(NLS 관리)을 선택하면 SSMA는 변환을 위해 세션 언어를 사용하여 TO_CHAR(날짜, 형식)를 TO_CHAR_DATE_LS 함수로 변환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: TO_CHAR_DATE 함수 사용

전체 모드: TO_CHAR_DATE_LS 함수 사용(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에는 NULL을 주문하는 방법을 변경할 수 있는 NULLS FIRST 및 NULLS LAST 절이 있습니다.

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 예외가 발생합니다. 문이 두 개 이상의 행을 반환하면 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 대한 오류를 생성합니다. 구문 분석

  • 오류를 선택하면 변환 DBMS_SQL SSMA에서 오류가 생성됩니다. 구문 분석.

  • 경고를 선택하면 변환 DBMS_SQL SSMA에서 경고가 생성됩니다. 구문 분석.

모드 상자에서 변환 모드를 선택하면 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 동작을 에뮬레이트하는 데 사용됩니다. 이 설정에는 다음과 같은 옵션이 있습니다.

  • 아니요

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요

전체 모드:

CONCAT 함수 호출에서 ISNULL 사용

ISNULL 문은 DB2 동작을 에뮬레이트하기 위해 CONCAT 함수 호출에 사용됩니다. 이 설정에는 다음과 같은 옵션이 있습니다.

  • 아니요

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요

전체 모드:

가능하면 네이티브 변환 함수 사용

  • 예를 선택하면 SSMA는 가능한 경우 TO_CHAR(날짜, 형식)를 네이티브 변환 함수로 변환합니다.

  • 아니요를 선택하면 SSMA는 TO_CHAR(날짜, 형식)를 TO_CHAR_DATE 또는 TO_CHAR_DATE_LS 변환합니다("TO_CHAR(날짜, 형식)" 옵션으로 정의됨).

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:

전체 모드: 아니요

SELECT 사용... SELECT를 변환할 때 FOR XML... 레코드 변수에 대한 INTO

레코드 변수로 선택할 때 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에서는 시퀀스를 사용하여 고유 식별자를 생성할 수 있습니다.

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 시퀀스 currval 메서드)을 가져오는 것을 지원하지 않습니다. DB2 시퀀스 currval 메서드 마이그레이션에 대한 지침은 SSMA 팀 블로그 사이트를 참조하세요.

또한 SSMA는 DB2 시퀀스를 SSMA 시퀀스 에뮬레이터로 변환하는 옵션을 제공합니다. 2012년 이전의 SQL Server로 변환할 때 기본 옵션입니다.

마지막으로 테이블의 열에 할당된 시퀀스를 SQL Server ID 값으로 변환할 수도 있습니다. DB2 테이블 탭의 ID 열에 대한 시퀀스 간 매핑을 지정해야 합니다.

CURRVAL 외부 트리거 변환

변환 시퀀스 생성기가 열 ID를 사용하도록 설정된 경우에만 표시됩니다. DB2 시퀀스는 테이블과 별개의 개체이므로 시퀀스를 사용하는 많은 테이블에서 트리거를 사용하여 새 시퀀스 값을 생성하고 삽입합니다. SSMA는 이러한 문을 주석 처리하거나 주석 처리 시 오류가 발생할 때 오류로 표시합니다.

  • 예를 선택하면 SSMA는 변환된 시퀀스 CURRVAL의 외부 트리거에 대한 모든 참조를 경고와 함께 표시합니다.

  • 아니요를 선택하면 SSMA는 변환된 시퀀스 CURRVAL의 외부 트리거에 대한 모든 참조를 오류로 표시합니다.

참고 항목

사용자 인터페이스 참조(DB2ToSQL)