비 XML 서식 파일 이해

SQL Server 2000 및 이전 버전에서는 대량 내보내기 및 가져오기 작업에 한 가지 유형의 서식 파일을 사용합니다. SQL Server 2005 이상 버전에서 지원되는 비 XML 서식 파일은 XML 서식 파일을 대체합니다. 구분을 위해 원래 유형의 서식 파일을 비 XML 서식 파일이라 부릅니다.

[!참고]

XML 서식 파일은 몇 가지 이점이 있습니다. 자세한 내용은 데이터를 가져오거나 내보내기 위한 서식 파일을 참조하십시오.

일반적으로 특정 데이터 형식에 대한 서식 파일은 다음 중 한 가지 방식으로 bcp 명령을 사용하여 만들 수 있습니다.

  • bcp 명령에 format 옵션을 지정하여 문자 데이터 또는 네이티브 데이터와 같은 유형의 서식 파일을 만들 수 있습니다. 자세한 내용은 서식 파일 만들기를 참조하십시오.

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

    [!참고]

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

비 XML 서식 파일의 구조

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

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

비-XML 형식 파일 필드 식별

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

서식 파일 필드

설명

버전

서식 파일의 버전 번호입니다. SQL Server의 대부분의 버전에서는 다음과 같이 서식 파일 버전이 bcp 유틸리티(Bcp.exe)와 같습니다.

SQL Server 버전서식 파일 버전bcp 버전1
SQL Server 버전 7.07.07.0
SQL Server 2000 8.08.0
SQL Server 2005 9.09.0
SQL Server 2008 10.010.0
SQL Server 2008 R2 10.010.50

1 버전 번호는 bcp에서만 인식되며 Transact-SQL에서는 인식되지 않습니다.

참고참고
서식 파일을 읽는 데 사용되는 bcp 유틸리티의 버전은 서식 파일의 버전 이상이어야 합니다. 예를 들어 SQL Server 2008bcp는 SQL Server 2005bcp에서 생성된 버전 9.0 서식 파일을 읽을 수 있지만 SQL Server 2005bcp는 SQL Server 2008 또는 SQL Server 2008 R2bcp에서 생성된 버전 10.0 서식 파일을 읽을 수 없습니다.

열 개수

데이터 파일의 필드 개수. 이 개수는 모든 행에서 같아야 합니다.

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

서식 파일 필드

설명

호스트 파일 필드 순서

데이터 파일에서 각 필드의 위치를 나타내는 번호. 예를 들어 행의 첫 번째 필드 번호는 1입니다.

호스트 파일 데이터 형식

데이터 파일의 특정 필드에 저장되는 데이터 형식 표시. ASCII 데이터 파일에는 SQLCHAR을, 네이티브 형식의 데이터 파일에는 기본 데이터 형식을 사용합니다. 자세한 내용은 bcp를 사용하여 파일 저장 유형 지정을 참조하십시오.

접두사 길이

필드의 길이 접두사 문자 수. 유효한 접두사 길이는 0, 1, 2, 4 및 8입니다. 길이 접두사를 지정하지 않으려면 이 값을 0으로 설정합니다. 필드에 NULL 데이터 값이 있으면 길이 접두사를 지정해야 합니다. 자세한 내용은 데이터 파일에 접두사 길이 지정을 참조하십시오.

호스트 파일 데이터 길이

데이터 파일의 특정 필드에 저장된 데이터 형식의 최대 길이(바이트).

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

자세한 내용은 bcp를 사용하여 필드 길이 지정을 참조하십시오.

종결자

데이터 파일의 필드를 구분하는 구분 기호. 일반적인 종결자는 쉼표(,), 탭(\t), 줄의 끝(\r\n)입니다. 자세한 내용은 필드 및 행 종결자 지정을 참조하십시오.

서버 열 순서

SQL Server 테이블에 열이 나타나는 순서. 예를 들어 데이터 파일의 4번째 필드가 SQL Server 테이블의 6번째 열에 매핑될 경우 4번째 필드의 서버 열 순서는 6입니다.

테이블의 열이 데이터 파일의 데이터를 받지 못하도록 하려면 서버 열 순서 값을 0으로 설정합니다.

서버 열 이름

SQL Server 테이블에서 복사된 열의 이름. 필드의 실제 이름을 사용할 필요는 없지만 서식 파일의 필드를 비워 두면 안 됩니다.

열 정렬

문자 및 유니코드 데이터를 데이터 파일에 저장하는 데 사용하는 정렬 순서

[!참고]

필드와 테이블 열의 번호 또는 순서가 서로 다른 데이터 파일로부터 대량 가져오기를 수행하도록 서식 파일을 수정할 수 있습니다. 자세한 내용은 서식 파일을 사용하여 대량 내보내기 중에 필드를 열에 매핑을 참조하십시오.

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

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

10.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 서식 파일의 구조"를 참조하십시오.