다음을 통해 공유


SQL Server 개체 및 버전에 대한 DAC 지원

DAC(데이터 계층 애플리케이션)는 가장 일반적으로 사용되는 데이터베이스 엔진 개체를 지원합니다.

항목 내용

지원되는 SQL Server 개체

데이터 계층 애플리케이션에서 작성 또는 편집할 때 지원되는 개체만 지정할 수 있습니다. DAC에서 지원되지 않는 개체가 포함된 기존 데이터베이스에서 DAC를 추출, 등록 또는 가져올 수 없습니다. SQL Server 2014는 DAC에서 다음 개체를 지원합니다.

데이터베이스 역할 FUNCTION: 인라인 테이블 반환
FUNCTION: 다중 문 테이블 반환 함수: 스칼라
INDEX: 클러스터형 INDEX: 비클러스터형
INDEX: 공간 인덱스: 고유
LOGIN 사용 권한
역할 멤버 자격 SCHEMA
통계 저장 프로시저: Transact-SQL
동의어 TABLE: Check 제약 조건
테이블: 데이터 정렬 TABLE: 계산 열을 포함한 열
TABLE: DEFAULT 제약 조건 TABLE: 제약 조건, 외래 키
TABLE: 제약 조건, 인덱스 TABLE: PRIMARY KEY 제약 조건
TABLE: 제약 조건, 고유 TRIGGER: DML
형식: HIERARCHYID, GEOMETRY, GEOGRAPHY 형식: 사용자 정의 데이터 형식
TYPE: 사용자 정의 테이블 형식 USER
VIEW

SQL Server 버전별 데이터 계층 애플리케이션 지원

SQL Server 버전은 DAC 작업에 대한 다양한 수준의 지원을 제공합니다. SQL Server 버전에서 지원하는 모든 DAC 작업은 해당 버전의 모든 버전에서 지원됩니다.

데이터베이스 엔진 인스턴스는 다음 DAC 작업을 지원합니다.

  • 내보내기 및 추출은 지원되는 모든 SQL Server 버전에서 지원됩니다.

  • 모든 작업은 Azure SQL Database 및 모든 버전의 SQL Server 2014, SQL Server 2012 및 SQL Server 2008 R2에서 지원됩니다.

  • 모든 작업은 SQL Server 2008 SP2(서비스 팩 2) 이상 및 SQL Server 2005 SP4 이상에서 지원됩니다.

DAC Framework는 DAC 패키지 및 내보내기 파일을 빌드 및 처리하기 위한 클라이언트 쪽 도구로 구성됩니다. 다음 제품에는 DAC Framework가 포함됩니다.

  • SQL Server 2014 및 SQL Server 2012에는 모든 DAC 작업을 지원하는 DAC Framework 3.0이 포함되어 있습니다.

  • SQL Server 2008 R2 SP1 및 Visual Studio 2010 SP1에는 내보내기 및 가져오기를 제외한 모든 DAC 작업을 지원하는 DAC Framework 1.1이 포함되어 있습니다.

  • SQL Server 2008 R2 및 Visual Studio 2010에는 내보내기, 가져오기 및 현재 위치 업그레이드를 제외한 모든 DAC 작업을 지원하는 DAC Framework 1.0이 포함되어 있습니다.

  • 이전 버전의 SQL Server 또는 Visual Studio의 클라이언트 도구는 DAC 작업을 지원하지 않습니다.

DAC Framework의 한 버전으로 빌드된 DAC 패키지 또는 내보내기 파일은 이전 버전의 DAC Framework에서 처리할 수 없습니다. 예를 들어 SQL Server 2014 클라이언트 도구를 사용하여 추출된 DAC 패키지는 SQL Server 2008 R2 클라이언트 도구를 사용하여 배포할 수 없습니다.

하위 버전의 DAC Framework에서 작성한 DAC 패키지 또는 내보내기 파일은 상위 버전의 DAC Framework에서 처리할 수 없습니다. 예를 들어 SQL Server 2008 R2 클라이언트 도구를 사용하여 추출된 DAC 패키지는 SQL Server 2008 R2 SP1 이상의 클라이언트 도구를 사용하여 배포할 수 있습니다.

데이터 배포 제한 사항

SQL Server 2012 SP1에서 DAC Framework 데이터 배포 엔진의 정확도 제한 사항에 유의하세요. 제한 사항은 .dacpac 파일 배포 또는 게시, .bacpac 파일 가져오기 등의 DAC Framework 작업에 적용됩니다.

  1. sql_variant 열 내의 특정 조건 및 기본 형식에 대한 메타데이터 손실입니다. 영향을 받는 경우 다음 메시지와 함께 경고가 나타납니다. DAC Framework에서 배포될 때 sql_variant 열 내에 사용된 특정 데이터 형식의 특정 속성은 유지되지 않습니다.

    • MONEY, SMALLMONEY, NUMERIC, DECIMAL 기본 형식: 전체 자릿수는 유지되지 않습니다.

      • 전체 자릿수가 38인 DECIMAL/NUMERIC 기본 형식: "TotalBytes" sql_variant 메타데이터는 항상 21로 설정됩니다.
    • 모든 텍스트 기본 형식: 데이터베이스 기본 데이터 정렬은 모든 텍스트에 적용됩니다.

    • BINARY 기본 형식: 최대 길이 속성이 유지되지 않습니다.

    • TIME, DATETIMEOFFSET 기본 형식: 전체 자릿수는 항상 7로 설정됩니다.

  2. sql_variant 열 내의 데이터 손실입니다. 영향을 받는 경우 다음 메시지와 함께 경고가 나타납니다. 소수 자릿수가 3보다 큰 sql_variant DATETIME2 열의 값이 DAC Framework에서 배포되면 데이터가 손실됩니다. 배포하는 동안 DATETIME2 값은 소수 자릿수가 3과 같도록 제한됩니다.

    • 소수 자릿수가 3보다 큰 DATETIME2 기본 형식: 소수 자릿수는 3으로 제한됩니다.
  3. sql_variant 열 내의 다음 조건에 대해 배포 작업이 실패합니다. 영향을 받는 경우 다음 메시지와 함께 대화 상자가 나타납니다. DAC Framework의 데이터 제한으로 인해 작업을 수행하지 못했습니다.

    • DATETIME2, SMALLDATETIME 및 DATE 기본 형식: 값이 DATETIME 범위를 벗어난 경우(예: 연도가 1753보다 작음)

    • DECIMAL, NUMERIC 기본 형식: 값의 전체 자릿수가 28보다 큰 경우

배포 작업에 대한 추가 고려 사항

DAC Framework 데이터 배포 작업에 대한 다음 고려 사항에 유의하세요.

  • 추출/내보내기 - DAC Framework를 사용하여 데이터베이스에서 패키지를 만드는 작업(예: .dacpac 파일 추출, .bacpac 파일 내보내기)에서 이러한 제한 사항은 적용되지 않습니다. 패키지의 데이터는 원본 데이터베이스에 있는 데이터의 전체 충실도 표현입니다. 이러한 조건이 패키지에 있는 경우 추출/내보내기 로그에는 위에서 설명한 메시지를 통해 문제에 대한 요약이 포함됩니다. 이는 사용자가 만든 패키지와 관련된 잠재적인 데이터 배포 문제를 사용자에게 경고하기 위한 것입니다. 또한 로그에 다음 요약 메시지가 표시됩니다. 이러한 제한 사항은 DAC Framework에서 만든 DAC 패키지에 저장된 데이터 형식 및 값의 충실도에 영향을 미치지 않습니다. DAC 패키지를 데이터베이스에 배포한 결과 데이터 형식 및 값에만 적용됩니다. 영향을 받는 데이터 및 이 제한 사항을 해결하는 방법에 대한 자세한 내용은 이 항목을 참조하세요.

  • 배포/게시/가져오기 - DAC Framework를 사용하여 .dacpac 파일을 배포하거나 게시하고 .bacpac 파일을 가져오는 등의 데이터베이스에 패키지를 배포하는 작업에서 이러한 제한 사항이 적용됩니다. 대상 데이터베이스를 만드는 데이터에 패키지에 있는 데이터의 전체 정확도 표현이 포함되지 않을 수 있습니다. 배포/가져오기 로그에는 문제가 발생한 모든 인스턴스에 대해 위에서 언급한 메시지가 포함됩니다. 작업은 오류에 의해 차단됩니다. 위의 범주 3을 참조하지만 다른 경고를 진행합니다.

    이 시나리오의 영향을 받는 데이터 및 배포/게시/가져오기 작업에 대한 이 제한 사항을 해결하는 방법에 대한 자세한 내용은 이 항목을 참조 하세요.

  • 해결 방법 - 추출 및 내보내기 작업에서는 전체 정확도 BCP 데이터 파일을 .dacpac 또는 .bacpac 파일에 기록합니다. 제한을 방지하려면 SQL Server BCP.exe 명령줄 유틸리티를 사용하여 DAC 패키지에서 대상 데이터베이스에 완전 충실도 데이터를 배포합니다.

참고 항목

데이터 계층 애플리케이션