문자 형식으로 데이터 저장

문자 형식의 데이터를 내보낸 데이터 파일에 저장하는 방식은 데이터가 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이고 종결자가 있으면 필드 길이 값이 무시됩니다. 필드가 사용하는 저장 공간은 데이터 길이에 종결자를 더한 값입니다.
    ms190212.note(ko-kr,SQL.90).gif중요:
    접두사 및 종결자는 모두 비 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...

ms190212.note(ko-kr,SQL.90).gif참고:

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

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

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

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

 

접두사 길이 = 0

접두사 길이 = 1, 2, 4

종결자 없음:

999··999··...

P999P999...

종결자 있음:

999T999T...

P999TP999T...

ms190212.note(ko-kr,SQL.90).gif참고:

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

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

참고 항목

개념

bcp를 사용하여 필드 길이 지정
bcp를 사용하여 파일 저장 유형 지정
데이터 파일에 접두사 길이 지정
필드 및 행 종결자 지정

관련 자료

bcp 유틸리티
데이터 형식(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 접두사 및 종결자는 모두 비 XML 서식 파일에서만 지정할 수 있다고 설명하는 참고를 추가했습니다.