비 XML 서식 파일 사용(SQL Server)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

SQL Server에서는 비 XML 서식 파일XML 서식 파일의 두 가지 서식 파일 유형을 대량으로 내보내고 가져올 수 있습니다.

비 XML 서식 파일의 이점

  • bcp 명령에 format 옵션을 지정하여 비 XML 서식 파일을 자동으로 만들 수 있습니다.

  • bcp 명령에 기존 서식 파일을 지정할 때 명령은 서식 파일에 기록되어 있는 값을 사용하며 파일 스토리지 형식, 접두사 길이, 필드 길이 또는 필드 종결자 입력을 요구하지 않습니다.

  • 문자 데이터 또는 네이티브 데이터와 같은 특정 데이터 형식의 서식 파일을 만들 수 있습니다.

  • 각 데이터 필드에 대해 대화형으로 지정된 특성을 포함하는 비 XML 서식 파일을 만들 수 있습니다. 자세한 내용은 bcp를 사용하여 데이터 형식을 호환 가능하도록 지정(SQL Server)을 참조하세요.

참고

XML 서식 파일은 비 XML 서식 파일에 비해 몇 가지 이점이 있습니다. 자세한 내용은 XML 서식 파일(SQL Server)을 참조하세요.

참고

대량 삽입을 포함한 이 구문은 Azure Synapse Analytics에서 지원되지 않습니다. Azure Synapse Analytics 및 기타 클라우드 데이터베이스 플랫폼 통합에서 Azure Data Factory의 COPY 문을 통해 또는 COPY INTO 및 PolyBase와 같은 T-SQL 문을 사용하여 데이터 이동을 수행합니다.

비 XML 서식 파일의 구조

비 XML 서식 파일은 특정 구조의 텍스트 파일입니다. 비 XML 서식 파일은 모든 테이블 열의 필드 종결자, 필드 길이, 접두사 길이 및 파일 스토리지 유형에 대한 정보를 포함합니다.

다음 그림에서는 예제 비 XML 서식 파일에 대한 서식 파일 필드를 보여 줍니다.

Identifies the fields of a non-xml format file.

버전열 개수 필드는 한 번만 생성해야 합니다. 다음 표에서는 해당 의미에 대해 설명합니다.

서식 파일 필드 Description
버전 bcp 유틸리티의 버전 번호:

9.0 = SQL Server 2005(9.x)

10.0 = SQL Server 2008(10.0.x)

11.0 = SQL Server 2012(11.x)

12.0 = SQL Server 2014(12.x)

버전 번호는 bcp를 위한 것이며 Transact-SQL은 인식하지 않습니다.



참고: 서식 파일을 읽는 데 사용되는 bcp 유틸리티(Bcp.exe)의 버전은 서식 파일을 만드는 데 사용되는 버전 이상이어야 합니다. 예를 들어 SQL Server 2012(11.x)bcp는 SQL Server 2008(10.0.x)bcp에서 생성된 버전 10.0 서식 파일을 읽을 수 있지만 SQL Server 2008(10.0.x)bcp는 SQL Server 2014 (12.x)bcp에서 생성된 버전 12.0 서식 파일을 읽을 수 없습니다.
열 수 데이터 파일의 필드 개수. 이 개수는 모든 행에서 같아야 합니다.

다른 서식 파일 필드에서는 대량으로 가져오거나 내보낸 데이터 필드에 대해 설명합니다. 각 데이터 필드를 사용하려면 서식 파일에 있는 별도의 행이 필요합니다. 모든 서식 파일 행에는 다음 표에 설명되어 있는 서식 파일 필드에 대한 값이 포함되어 있습니다.

서식 파일 필드 Description
호스트 파일 필드 순서 데이터 파일에서 각 필드의 위치를 나타내는 번호. 예를 들어 행의 첫 번째 필드 번호는 1입니다.
호스트 파일 데이터 형식 데이터 파일의 특정 필드에 저장되는 데이터 형식 표시. ASCII 데이터 파일에는 SQLCHAR을, 네이티브 형식의 데이터 파일에는 기본 데이터 형식을 사용합니다. 자세한 내용은 bcp를 사용하여 파일 스토리지 유형 지정(SQL Server)을 참조하세요.
접두사 길이 필드의 길이 접두사 문자 수. 유효한 접두사 길이는 0, 1, 2, 4 및 8입니다. 길이 접두사를 지정하지 않으려면 이 값을 0으로 설정합니다. 필드에 NULL 데이터 값이 있으면 길이 접두사를 지정해야 합니다. 자세한 내용은 bcp를 사용하여 데이터 파일에 접두사 길이 지정(SQL Server)을 참조하세요.
호스트 파일 데이터 길이 데이터 파일의 특정 필드에 저장된 데이터 형식의 최대 길이(바이트).

구분 기호로 분리된 텍스트 파일에 대한 비 XML 서식 파일을 만드는 경우 모든 데이터 필드에 대한 호스트 파일 데이터 길이를 0으로 지정할 수 있습니다. 구분 기호로 분리된 텍스트 파일에서 접두사 길이가 0이며 종결자를 가져온 경우 필드 길이 값은 무시됩니다. 이는 필드에서 사용한 스토리지 공간이 데이터와 종결자를 합한 길이와 동일하기 때문입니다.

자세한 내용은 bcp를 사용하여 필드 길이 지정(SQL Server)을 참조하세요.
종결자 데이터 파일의 필드를 구분하는 구분 기호. 일반적인 종결자는 쉼표(,), 탭(\t), 줄의 끝(\r\n)입니다. 자세한 내용은 필드 및 행 종결자 지정(SQL Server)을 참조하세요.
서버 열 순서 SQL Server 테이블에 열이 나타나는 순서 예를 들어 데이터 파일의 4번째 필드가 SQL Server 테이블의 6번째 열에 매핑될 경우 4번째 필드의 서버 열 순서는 6입니다.

테이블의 열이 데이터 파일의 데이터를 받지 못하도록 하려면 서버 열 순서 값을 0으로 설정합니다.
서버 열 이름 SQL Server 테이블에서 복사된 열의 이름 필드의 실제 이름을 사용할 필요는 없지만 서식 파일의 필드를 비워 두면 안 됩니다.
열 데이터 정렬 문자 및 유니코드 데이터를 데이터 파일에 저장하는 데 사용하는 데이터 정렬.

참고

필드와 테이블 열의 번호 또는 순서가 서로 다른 데이터 파일로부터 대량 가져오기를 수행하도록 서식 파일을 수정할 수 있습니다. 자세한 내용은 관련 태스크를 참조하세요.

비 XML 서식 파일의 예

다음 예에서는 이전에 만든myDepartmentIdentical-f-c.fmt라는 비 XML 서식 파일을 보여 줍니다. 이 파일에서는 HumanResources.Department 예제 데이터베이스의 AdventureWorks2022 테이블에 있는 모든 열의 문자 데이터 필드에 대해 설명합니다.

생성된 myDepartmentIdentical-f-c.fmt서식 파일에는 다음 정보가 포함됩니다.

12.0  
4  
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""  
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS  
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS  
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""

참고

예제 비 XML 서식 파일과 관련된 서식 파일 필드를 보여 주는 그림에 대한 자세한 내용은 비 XML 서식 파일의 구조를 참조하세요.

관련 작업

다음 단계