bcp를 사용하여 데이터 형식을 호환 가능하도록 지정

Microsoft SQL Server의 데이터를 대량 내보내 다른 프로그램(예: 다른 데이터베이스 프로그램)으로 대량 가져오는 경우 원본 테이블의 기본 데이터 형식(네이티브, 문자 또는 유니코드)이 다른 프로그램에서 필요한 데이터 레이아웃과 호환되지 않을 수 있습니다. 호환되지 않는 경우 데이터를 내보낼 때는 데이터 레이아웃을 지정해야 합니다.

[!참고]

데이터를 가져오거나 내보내기 위한 데이터 형식에 익숙하지 않은 경우 데이터를 가져오거나 내보내기 위한 데이터 형식을 참조하십시오.

bcp 명령을 사용하여 데이터 파일 내 각 필드의 구조를 다음 데이터 형식 특성에 따라 지정할 수 있습니다.

  • 파일 저장 유형

    파일 저장 유형은 데이터 파일에서 데이터가 저장되는 방법을 설명합니다. 데이터는 데이터베이스 테이블 형식(네이티브 형식), 문자 표시(문자 형식) 또는 암시적 변환을 지원하는 모든 데이터 형식의 데이터 파일로 내보낼 수 있습니다. 예를 들어 smallint를 int로 복사할 수 있습니다. 사용자 정의 데이터 형식은 해당 기본 형식으로 내보내집니다. 자세한 내용은 bcp를 사용하여 파일 저장 유형 지정을 참조하십시오.

  • 접두사 길이

    네이티브 형식의 데이터를 데이터 파일로 대량 내보내는 작업에서 가장 압축된 형식으로 파일을 저장하려면 각 필드에 필드 길이를 나타내는 하나 이상의 문자와 함께 bcp 명령을 사용합니다. 이러한 문자를 길이 접두사 문자라고 합니다. 자세한 내용은 데이터 파일에 접두사 길이 지정을 참조하십시오.

  • 필드 길이

    필드 길이는 데이터를 문자 형식으로 표시하는 데 필요한 최대 문자 수를 나타냅니다. 데이터가 네이티브 형식으로 저장된 경우에는 필드 길이를 미리 알 수 있습니다. 자세한 내용은 bcp를 사용하여 필드 길이 지정을 참조하십시오.

  • 필드 종결자

    문자 데이터 필드에서 필요에 따라 종료 문자를 사용하면 데이터 파일 내 각 필드(필드 종결자 사용)와 행(행 종결자 사용)의 끝을 표시할 수 있습니다. 종결 문자는 한 필드나 행이 끝나고 다른 필드나 행이 시작하는 부분을 표시하여 데이터 파일을 읽는 프로그램에 전달하는 한 방법입니다. 자세한 내용은 필드 및 행 종결자 지정을 참조하십시오.

필드별 프롬프트 개요

대화형 bcp 명령에 in 또는 out 옵션은 있으나 서식 파일 스위치(-f)나 데이터 형식 스위치(-n, -c, -w 또는 -N)는 없는 경우 원본 또는 대상 테이블의 각 열에 대해 각 이전 특성을 묻는 명령 프롬프트가 차례로 표시됩니다. 각 프롬프트에서 bcp 명령은 테이블 열의 SQL Server 데이터 형식에 따라 기본값을 제공합니다. 모든 프롬프트에서 기본값을 허용하면 명령줄에서 네이티브 형식(-n)을 지정한 것과 동일한 결과가 생성됩니다. 각 프롬프트에서 기본값은 [default]. 표시된 기본값을 적용하려면 Enter 키를 누릅니다. 기본값 이외의 값을 지정하려면 프롬프트에서 새 값을 입력합니다.

다음 예에서는 bcp 명령을 사용하여 대화형으로 HumanResources.myTeam 테이블에서 myTeam.txt 파일로 데이터를 대량 내보냅니다. 예를 실행하려면 이 테이블을 만들어야 합니다. 테이블에 대한 내용과 테이블을 만드는 방법은 HumanResources.myTeam 테이블 만들기를 참조하십시오.

명령에서 서식 파일이나 데이터 형식을 지정하지 않기 때문에 bcp는 데이터 형식 정보를 묻는 프롬프트를 표시합니다. Microsoft Windows 명령 프롬프트에 다음을 입력합니다.

bcp AdventureWorks2008R2.HumanResources.myTeam out myTeam.txt -T

각 열에 대해 bcp는 필드별 값을 묻는 프롬프트를 표시합니다. 다음 예는 테이블의 EmployeeID 및 Name 열에 대한 필드별 프롬프트를 보여 주며 각 열에 대한 기본 파일 저장 유형(네이티브 형식)을 제안합니다. EmployeeID 및 Name 열의 접두사 길이는 각각 0, 2입니다. 사용자는 각 필드의 종결자로 쉼표(,)를 지정합니다.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

각 테이블 열에 대한 프롬프트(필요한 경우에만)가 순서대로 표시됩니다.

비 XML 서식 파일에 필드 단위 데이터 저장

테이블 열이 모두 지정된 후 bcp 명령은 방금 제공된 필드 단위 정보를 저장할 비 XML 서식 파일을 만들 것인지 묻는 메시지를 표시합니다(이전 예 참조). 서식 파일 생성하도록 선택하면 해당 테이블에서 데이터를 내보내거나 구조가 비슷한 데이터를 SQL Server로 가져올 때마다 서식 파일을 생성할 수 있습니다.

[!참고]

서식 파일을 사용하면 데이터 파일에서 SQL Server의 인스턴스로 데이터를 대량 가져오거나 테이블에서 데이터를 대량 내보낼 때 서식을 다시 지정할 필요가 없습니다. 자세한 내용은 데이터를 가져오거나 내보내기 위한 서식 파일을 참조하십시오.

다음 예에서는 myFormatFile.fmt라는 비 XML 서식 파일을 만듭니다.

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

서식 파일의 기본 이름은 bcp.fmt지만 필요하다면 다른 이름을 지정할 수 있습니다.

[!참고]

문자 또는 네이티브 형식과 같은 하나의 데이터 형식으로 파일을 저장하는 데이터 파일의 경우 format 옵션을 사용하면 데이터를 내보내거나 가져올 필요 없이 즉시 서식 파일을 만들 수 있습니다. 이 방법은 쉽고, XML 서식 파일뿐 아니라 비 XML 서식 파일도 만들 수 있다는 장점이 있습니다. 자세한 내용은 서식 파일 만들기를 참조하십시오.

섹션 내용

이 섹션에서는 다음 항목을 다룹니다.

항목

데이터 형식 특성

bcp를 사용하여 파일 저장 유형 지정

bcp 명령에서 파일 저장 유형을 지정하는 방법을 설명합니다.

데이터 파일에 접두사 길이 지정

bcp 명령에서 접두사 길이를 지정하는 방법을 설명합니다.

bcp를 사용하여 필드 길이 지정

bcp 명령에서 필드 길이를 지정하는 방법을 설명합니다.

필드 및 행 종결자 지정

bcp 명령에서 필드 및 행 종결자를 지정하는 방법을 설명합니다.

문자 형식으로 데이터 저장

문자 형식의 데이터가 내보내는 데이터 파일에 저장되는 방법을 설명합니다.