SQL Server 개체 및 버전에 대한 DAC 지원
DAC(데이터 계층 응용 프로그램)는 가장 일반적으로 사용되는 데이터베이스 엔진 개체를 지원합니다.
항목 내용
지원되는 SQL Server 개체
각 SQL Server 버전에서 지원되는 데이터 계층 응용 프로그램
데이터 배포 제한 사항
배포 작업에 대한 추가 고려 사항
지원되는 SQL Server 개체
작성 또는 편집 중인 데이터 계층 응용 프로그램에서는 지원되는 개체만 지정할 수 있습니다. DAC에서 지원되지 않는 개체가 포함된 기존 데이터베이스에서 DAC를 추출하거나 등록하거나 가져올 수 없습니다. SQL Server 2012에서는 DAC에서 다음 개체를 지원합니다.
DATABASE ROLE |
함수: 인라인 테이블 반환 |
함수: 다중 문 테이블 반환 |
함수: 스칼라 |
인덱스: 클러스터형 |
인덱스: 비클러스터형 |
인덱스: 공간 |
인덱스: 고유 |
LOGIN |
사용 권한 |
역할 멤버 자격 |
SCHEMA |
통계 |
저장 프로시저: Transact-SQL |
동의어 |
테이블: CHECK 제약 조건 |
테이블: 데이터 정렬 |
테이블: 계산된 열을 포함하는 열 |
테이블: DEFAULT 제약 조건 |
테이블: FOREIGN KEY 제약 조건 |
테이블: INDEX 제약 조건 |
테이블: PRIMARY KEY 제약 조건 |
테이블: UNIQUE 제약 조건 |
트리거: DML |
형식: HIERARCHYID, GEOMETRY, GEOGRAPHY |
형식: 사용자 정의 데이터 형식 |
형식: 사용자 정의 테이블 형식 |
USER |
VIEW |
각 SQL Server 버전에서 지원되는 데이터 계층 응용 프로그램
SQL Server 버전마다 DAC 작업에 대해 지원되는 수준이 다릅니다. 한 SQL Server 버전에서 지원되는 모든 DAC 작업은 해당 제품의 모든 버전에서 지원됩니다.
데이터베이스 엔진 인스턴스에서 지원하는 DAC 작업은 다음과 같습니다.
내보내기 및 추출은 지원되는 모든 SQL Server 버전에서 지원됩니다.
Windows Azure SQL 데이터베이스와 모든 버전의 SQL Server 2012 및 SQL Server 2008 R2에서는 모든 작업이 지원됩니다.
SQL Server 2008 SP2(서비스 팩 2) 이상과 SQL Server 2005 SP4 이상에서는 모든 작업이 지원됩니다.
DAC Framework는 DAC 패키지 및 내보내기 파일을 작성하고 처리하는 클라이언트 쪽 도구를 구성합니다. DAC Framework는 다음과 같은 제품에 포함되어 있습니다.
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 2012 클라이언트 도구를 사용하여 추출한 DAC 패키지는 SQL Server 2008 R2 클라이언트 도구를 사용하여 배포할 수 없습니다.
하위 버전의 DAC Framework에서 작성한 DAC 패키지 또는 내보내기 파일은 상위 버전의 DAC Framework에서 처리할 수 없습니다. 예를 들어 SQL Server 2008 R2 클라이언트 도구를 사용하여 추출한 DAC 패키지는 SQL Server 2008 R2 SP1 또는 SQL Server 2012 클라이언트 도구를 사용하여 배포할 수 없습니다.
데이터 배포 제한 사항
SQL Server 2012 PCU1의 DAC 프레임워크 데이터 배포 엔진에서 이러한 정확도 제한 사항에 유의하십시오. 이 제한 사항은 .dacpac 파일 배포 또는 게시 및 .bacpac 파일 가져오기와 같은 DAC 프레임워크 작업에 적용됩니다.
sql_variant 열 내에 있는 특정 조건 및 기본 형식에 대한 메타데이터 손실. 영향을 받는 경우 **DAC 프레임워크에서 배포될 때 sql_variant 열 내에 사용된 특정 데이터 형식의 특정 속성은 유지되지 않습니다.**라는 경고 메시지가 표시됩니다.
MONEY, SMALLMONEY, NUMERIC, DECIMAL 기본 형식: 전체 자릿수가 유지되지 않습니다.
- 전체 자릿수가 38인 DECIMAL/NUMERIC: "TotalBytes" sql_variant 메타데이터는 항상 21로 설정됩니다.
모든 텍스트 기본 형식: 모든 텍스트에 데이터베이스 기본 데이터 정렬이 적용됩니다.
BINARY 기본 형식: 최대 길이 속성은 유지되지 않습니다.
TIME, DATETIMEOFFSET 기본 형식: 전체 자릿수가 항상 7로 설정됩니다.
sql_variant 열 내에 있는 데이터의 손실. 영향을 받는 경우 **소수 자릿수가 3보다 큰 sql_variant DATETIME2 열의 값이 DAC 프레임워크에서 배포되면 데이터가 손실됩니다. 배포하는 동안 DATETIME2 값은 소수 자릿수가 3과 같도록 제한됩니다.**라는 경고 메시지가 표시됩니다.
- 소수 자릿수가 3보다 큰 DATETIME2 기본 형식: 소수 자릿수가 3과 같도록 제한됩니다.
sql_variant 열 내에서 다음과 같은 조건의 경우 배포 작업이 실패합니다. 영향을 받는 경우 **DAC 프레임워크의 데이터 제한으로 인해 작업을 수행하지 못했습니다.**라는 메시지와 함께 대화 상자가 표시됩니다.
DATETIME2, SMALLDATETIME 및 DATE 기본 형식: 연도가 1753보다 작은 경우처럼 값이 DATETIME 범위를 벗어나는 경우
DECIMAL, NUMERIC 기본 형식: 값의 전체 자릿수가 28보다 큰 경우
배포 작업에 대한 추가 고려 사항
DAC 프레임워크 데이터 배포 작업에 대한 다음과 같은 고려 사항에 유의하십시오.
추출/내보내기 - .dacpac 파일을 추출하거나 .bacpac 파일을 내보내는 작업과 같이 DAC 프레임워크를 사용하여 데이터베이스에서 패키지를 만드는 작업에 대해서는 이러한 제한 사항이 적용되지 않습니다. 패키지의 데이터는 원본 데이터베이스에 있는 데이터의 고화질 프레젠테이션입니다. 패키지에 이러한 조건 중 하나라도 있으면 위에서 언급한 메시지를 통해 문제에 대한 요약 내용이 추출/내보내기 로그에 포함됩니다. 이는 사용자에게 자신이 만든 패키지에 잠재적인 데이터 배포 문제가 있음을 경고하는 것입니다. 사용자의 로그에는 이러한 제한은 데이터 형식 및 DAC 프레임워크에서 만든 DAC 패키지에 저장된 값의 정확도에 영향을 미치지 않고, DAC 패키지를 데이터베이스에 배포한 결과 발생한 데이터 형식 및 값에만 적용됩니다. 라는 요약 메시지도 표시됩니다. 영향을 받는 데이터에 대한 자세한 내용과 이러한 제한 사항을 해결하는 방법은 이 항목을 참조하십시오.
배포/게시/가져오기 - .dacpac 파일을 배포 또는 게시하거나 .bacpac 파일을 가져오는 작업과 같이 DAC 프레임워크를 사용하여 데이터베이스에 패키지를 배포하는 작업에 대해 이러한 제한 사항이 적용됩니다. 대상 데이터베이스에 결과로 생성되는 데이터에는 패키지의 데이터에 대한 고화질 프레젠테이션이 포함되지 않을 수 있습니다. 배포/가져오기 로그에는 문제가 발생하는 모든 경우에 대해 위에서 언급한 메시지가 포함됩니다. 작업은 오류 때문에 차단되지만(위의 범주 3 참조) 다른 경고는 계속 나타납니다.
이 시나리오에서 영향을 받는 데이터에 대한 자세한 내용과 배포/게시/가져오기 작업에 대한 이 제한 사항을 해결하는 방법은 이 항목을 참조하십시오.
해결 방법 – 추출 및 내보내기 작업은 고화질 BCP 데이터 파일을 .dacpac 또는 .bacpac 파일로 씁니다. 제한 사항을 피하려면 SQL Server BCP.exe 명령줄 유틸리티를 사용하여 DAC 패키지에서 대상 데이터베이스로 고화질 데이터를 배포하십시오.