문자 형식으로 데이터 저장

문자 형식의 데이터를 내보낸 데이터 파일에 저장하는 방식은 데이터가 Microsoft SQL Server 테이블에 저장된 방식에 따라 달라집니다. 두 저장 패턴은 다음과 같이 명확하게 구분됩니다.

  • SQL Server char 데이터

  • char 저장으로 변환된 다른 데이터 형식

SQL Server char 데이터에 대한 저장 패턴

SQL Server char 데이터는 항상 정의된 열의 전체 길이로 데이터 파일에 저장됩니다. 예를 들어 char(10)으로 정의된 열은 그 열에 저장되어 있는 데이터 길이에 상관없이 데이터 파일에서 항상 10자 만큼의 공간을 차지합니다. char 데이터가 필드 길이보다 짧으면 공백이 데이터에 패딩으로 추가됩니다. 자세한 내용은 SET ANSI_PADDING(Transact-SQL)을 참조하십시오. 하지만 varchar 형식의 경우 접두사나 종결자를 선택하지 않는 한 실제 문자 수만 저장됩니다.

char 데이터로 변환되는 다른 데이터 형식에 대한 저장 패턴

문자 형식이 아닌 데이터를 문자 형식으로 저장하는 데 할당되는 저장 공간은 다음과 같이 필드 길이, 접두사 길이 및 종결자의 조합에 의해 결정됩니다.

  • 접두사 길이가 0이고 종결자가 없으면 필드 길이 값에 지정된 대로 고정 길이 필드로 취급됩니다. 접두사 길이가 0이고 종결자가 없으면 이 값이 해당 데이터 형식에 필요한 최대 공간이므로 bcp 유틸리티가 필드 길이 프롬프트에 표시된 최대 공간을 할당합니다. 이렇게 하면 한 필드가 끝나고 다음 필드가 시작되는 지점을 확인할 수 있습니다.

  • 접두사 길이가 0이고 종결자가 있으면 필드 길이 값이 무시됩니다. 필드가 사용하는 저장 공간은 데이터 길이에 종결자를 더한 값입니다.

    중요 정보중요

    접두사 및 종결자는 모두 비 XML 서식 파일에서만 지정할 수 있습니다.

  • 접두사 길이가 1, 2 또는 4이면 필드 길이 값이 무시됩니다. 필드가 사용하는 공간은 필드 길이, 필드 접두사의 길이, 종결자를 더한 값입니다.

앞서 설명한 모든 경우에서 SQL Server로 나중에 다시 로드할 수 있는 데이터 파일을 만들어 저장 공간을 최소로 유지할 수 있습니다. 저장 공간을 최소화하려면 기본 파일 저장 형식 및 기본 필드 길이와 함께 길이 접두사 문자를 사용합니다.

다음 예에서는 데이터가 char 형식으로 저장되어 있을 때 필드 길이, 접두사 길이 및 종결자 간의 관계를 보여 줍니다. 접두사 길이 값(있는 경우)은 P로 표현됩니다. 종결자(있는 경우)는 T로 표현됩니다. 줄임표(...)는 패턴이 모든 필드에 반복됨을 나타냅니다.

SQL Server char 데이터에 대한 저장 패턴의 예

[!참고]

char 데이터는 항상 전체 길이로 저장됩니다. 즉, 하나 이상의 공백(' ')을 패딩으로 저장합니다.

테이블 스키마는 t1(c1 char(8))입니다. 이 예에서는 길이가 8자인 필드에 저장되는 5자로 된 값(Hello로 표현됨)을 사용합니다. 예로 제시된 각 데이터 필드에서 5자로 된 Hello 값에는 항상 공백 3개가 추가되어야 합니다. 추가된 공백은 3개의 점(∙∙∙)으로 표시됩니다.

 

접두사 길이 = 0

접두사 길이 = 1, 2, 4

종결자 없음:

Hello∙∙∙Hello∙∙∙...

PHello∙∙∙PHello∙∙∙...

종결자 있음:

Hello∙∙∙THello∙∙∙T...

PHello∙∙∙TPHello∙∙∙T...

참고참고
이 예는 비 XML 서식 파일에만 적용됩니다.

문자 형식이 아닌 데이터를 char 저장으로 변환할 경우 저장 패턴의 예

테이블 스키마는 t1(c1 int)이며 각 행에는 정수 값 999가 있습니다.

[!참고]

길이가 1, 2 또는 4인 접두사 또는 필드 종결자가 있고 char 저장으로 데이터를 변환할 경우 데이터 값에 공백을 추가할 필요가 없습니다.

 

접두사 길이 = 0

접두사 길이 = 1, 2, 4

종결자 없음:

999∙∙999∙∙...

P999P999...

종결자 있음:

999T999T...

P999TP999T...

참고참고
이 예는 비 XML 서식 파일에만 적용됩니다.

[!참고]

접두사 길이나 종결자 중 하나를 지정하지 않으면 12바이트로 정수 값이 저장되고 마지막 9바이트에 공백 문자가 포함됩니다.