bcp를 사용하여 파일스토리지 유형 지정(SQL Server)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)

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

파일 스토리지 유형에 대한 bcp 프롬프트

대화형 bcp 명령에 in 또는 out 옵션이 포함된 경우 서식 파일 스위치(-f) 또는 데이터 서식 스위치(-n, -c, -w 또는 -N)가 없으면 명령에서 다음과 같이 각 데이터 필드의 파일 스토리지 유형을 지정하라는 메시지가 표시됩니다.

Enter the file storage type of field <field_name> [<default>]:

이 프롬프트에 대한 사용자 응답은 수행하는 태스크에 따라 다음과 같이 달라집니다.

  • Microsoft SQL Server 인스턴스에서 가능한 가장 압축된 스토리지(원시 데이터 형식)의 데이터 파일로 데이터를 대량으로 내보내려면 bcp에서 제공하는 기본 파일 스토리지 유형을 적용합니다. 네이티브 파일 스토리지 유형 목록은 이 항목의 뒷부분에 있는 "네이티브 파일 스토리지 유형"을 참조하세요.

  • SQL Server 인스턴스에서 데이터를 문자 형식으로 데이터 파일에 대량으로 내보내려면 char를 테이블의 모든 열에 대한 파일 스토리지 유형으로 지정합니다.

  • 데이터 파일에서 SQL Server 인스턴스로 데이터를 대량으로 가져오려면 파일 스토리지 유형을 문자 형식으로 저장된 유형에 대해 char로 지정하고 네이티브 데이터 유형 형식으로 저장된 데이터의 경우 파일 스토리지 유형 중 하나를 적절하게 지정합니다.

    파일 스토리지 유형 명령 프롬프트에 입력
    char c[har]
    varchar c[har]
    nchar w
    nvarchar w
    text T[ext]
    ntext2 W
    binary x
    varbinary x
    image I[mage]
    날짜/시간 d[ate]
    smalldatetime D
    time te
    date de
    datetime2 d2
    datetimeoffset do
    decimal n
    numeric n
    float f[loat]
    real r
    정수 i[nt]
    bigint B[igint]
    smallint s[mallint]
    tinyint t[inyint]
    money m[oney]
    smallmoney M
    bit b[it]
    uniqueidentifier u
    sql_variant V[ariant]
    timestamp x
    UDT(사용자 정의 데이터 형식) U
    XML X

    *char 파일 스토리지 유형으로 내보낸 데이터 중 문자가 아닌 데이터에 대해 데이터 파일에 할당되는 스토리지 공간의 크기는 필드 길이, 접두사 길이, 종결자의 상호 작용에 따라 결정됩니다.

    ** ntext, text, image 데이터 형식은 SQL Server의 이후 버전에서 제거됩니다. 향후 개발 작업에서는 이 데이터 형식을 사용하지 않도록 하고 현재 이 데이터 형식을 사용하는 응용 프로그램은 수정하세요. 대신 nvarchar(max), varchar(max)varbinary(max) 를 사용합니다.

네이티브 파일 스토리지 유형

각 네이티브 파일 스토리지 유형은 해당 호스트 파일 데이터 형식으로 서식 파일에 기록됩니다.

파일 스토리지 유형 호스트 파일 데이터 형식
char SQLCHAR
varchar SQLCHAR
nchar SQLNCHAR
nvarchar SQLNCHAR
text SQLCHAR
ntext SQLNCHAR
binary SQLBINARY
varbinary SQLBINARY
image SQLBINARY
날짜/시간 SQLDATETIME
smalldatetime SQLDATETIM4
decimal SQLDECIMAL
numeric SQLNUMERIC
float SQLFLT8
real SQLFLT4
int SQLINT
bigint SQLBIGINT
smallint SQLSMALLINT
tinyint SQLTINYINT
money SQLMONEY
smallmoney SQLMONEY4
bit SQLBIT
uniqueidentifier SQLUNIQUEID
sql_variant SQLVARIANT
timestamp SQLBINARY
UDT(사용자 정의 데이터 형식) SQLUDT

*문자 형식으로 저장된 데이터 파일은 char을 파일 스토리지 유형으로 사용합니다. 그러므로 문자 데이터 파일의 경우 SQLCHAR는 서식 파일에 나타나는 유일한 데이터 형식입니다.

**DEFAULT 값이 있는 text, ntext, image 열로 데이터를 대량으로 가져올 수 없습니다.

파일 스토리지 유형에 대한 추가 고려 사항

SQL Server 인스턴스에서 데이터 파일로 데이터를 대량으로 내보내는 경우:

  • 항상 char를 파일 스토리지 유형으로 지정할 수 있습니다.

  • 잘못된 암시적 변환을 나타내는 파일 스토리지 유형을 입력하면 bcp 가 실패합니다. 예를 들어 int 데이터에 smallint 를 지정할 수 있지만 smallintint 데이터에 지정하면 오버플로 오류가 발생합니다.

  • float, money, datetime 또는 int와 같이 문자가 아닌 데이터 형식이 데이터베이스 형식으로 저장되면 데이터는 SQL Server 원시 형식으로 데이터 파일에 기록됩니다.

    참고 항목

    bcp 명령의 모든 필드를 대화형으로 지정한 후 명령에서 각 필드에 대한 응답을 비 XML 서식 파일로 저장하라는 메시지를 표시합니다. 비 XML 서식 파일에 대한 자세한 내용은 비 XML 서식 파일(SQL Server)을 참조하세요.

참고 항목

bcp 유틸리티
데이터 형식(Transact-SQL)
bcp를 사용하여 필드 길이 지정(SQL Server)
필드 및 행 종결자 지정(SQL Server)
bcp를 사용하여 데이터 파일에 접두사 길이 지정(SQL Server)