다음을 통해 공유


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

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

이 문서에서는 데이터 형식 특성과 필드별 프롬프트,

SQL Server bcp 명령의 비 XML 서식 파일에 필드별 데이터를 저장하는 방법을 설명합니다. 이러한 개념을 잘 알고 있으면 다른 데이터베이스 프로그램과 같은 다른 프로그램으로 대량으로 가져오기 위해 SQL Server 데이터를 대량으로 내보낼 때 특히 유용합니다. 원본 테이블의 기본 데이터 형식(네이티브, 문자 또는 유니코드)이 다른 프로그램에서 필요한 데이터 레이아웃과 호환되지 않을 수 있습니다. 호환되지 않는 경우 데이터를 내보낼 때는 데이터 레이아웃을 지정해야 합니다.

참고 항목

데이터를 가져오거나 내보내기 위한 데이터 형식에 익숙하지 않은 경우 대량 가져오기 또는 대량 내보내기를 위한 데이터 형식(SQL Server)을 참조하세요.

bcp 데이터 형식의 특성

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

  • 파일 스토리지 유형

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

  • 접두사 길이

    원시 형식의 데이터를 데이터 파일에 대량으로 내보내는 작업에서 파일 스토리지를 가장 적게 사용하도록 하기 위해 bcp 명령은 각 필드의 이름 앞에 필드 길이를 나타내는 문자를 하나 이상 추가합니다. 이러한 문자를 길이 접두사 문자라고 합니다. 자세한 내용은 bcp를 사용하여 데이터 파일에 접두사 길이 지정(SQL Server)을 참조하세요.

  • 필드 길이

    필드 길이는 데이터를 문자 형식으로 나타내는 데 필요한 최대 문자 수를 나타냅니다. 데이터가 원시 형식으로 저장된 경우에는 필드 길이를 쉽게 알 수 있습니다. 자세한 내용은 bcp를 사용하여 필드 길이 지정(SQL Server)을 참조하세요.

  • 필드 종결자

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

필드별 프롬프트 개요

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

예시

다음 예에서는 bcp 명령을 사용하여 대화형으로 HumanResources.myTeam 테이블에서 myTeam.txt 파일로 대량 데이터 내보내기를 수행합니다. 예제를 실행하려면 이 테이블을 만들어야 합니다. 테이블 및 테이블을 만드는 방법은 HumanResources.myTeam 예제 테이블(SQL Server)을 참조하세요.

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

bcp AdventureWorks.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의 인스턴스로 데이터를 대량 가져오거나 테이블에서 데이터를 대량 내보낼 때 서식을 다시 지정할 필요가 없습니다. 자세한 내용은 데이터를 가져오거나 내보내기 위한 서식 파일(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 서식 파일을 만들 수 있다는 장점이 있습니다. 자세한 내용은 서식 파일 만들기(SQL Server)를 참조하세요.

없음

다음 단계