데이터 형식 및 복제

SQL Server Compact에서는 SQL Server 데이터 형식 중 일부를 지원하지 않습니다. SQL Server 게시의 구독자인 SQL Server Compact에서는 지원되지 않는 유형을 지원되는 유형으로 변환해야 합니다.

지원되는 데이터 형식 및 데이터 형식 매핑

다음 표에서는 SQL Server와 MicrosoftSQL Server Compact 3.5 간 복제를 진행할 때 수행되는 데이터 형식 매핑을 보여 주고 각 SQL Server 데이터 형식에 대한 매핑을 나열하며 제한 사항 또는 특수 동작에 대해 설명합니다.

SQL Server 데이터 형식

SQL Server Compact 데이터 형식

bigint

Bigint

binary(n)

binary(n)

bit

Bit

character(n)(동의어: char(n))

national character(n) 또는 ntext

데이터 길이가 4000자 이하일 경우 SQL Server Compact 복제는 SQL Servercharacter 데이터를 SQL Server Compactnational character로 매핑하고 4000자를 초과할 경우에는 character 데이터를 SQL Server Compactntext로 매핑합니다. ntext 데이터 길이가 character 열 길이를 초과할 경우 SQL Server Compact에서 SQL Server로 데이터를 전송하면 동기화가 실패합니다.

character varying(n)(동의어: varchar(n))

national character varying 또는 ntext

데이터 길이가 4000자 이하일 경우 SQL Server Compact 복제는 SQL Servercharacter varying 데이터를 SQL Server Compactnational character varying으로 매핑하고 4000자를 초과할 경우에는 character varying 데이터를 SQL Server Compactntext로 매핑합니다. ntext 데이터 길이가 character varying 열 길이를 초과할 경우 SQL Server Compact에서 SQL Server로 데이터를 전송하면 동기화가 실패합니다.

character varying(MAX)(동의어: varchar(MAX))

ntext

character varying(MAX) 데이터 길이가 ntext 열 길이를 초과할 경우 SQL Server에서 SQL Server Compact로 데이터를 전송하면 동기화가 실패합니다.

Computed Columns

지원되지 않습니다.

게시 마법사를 사용할 경우 SQL Server Compact 구독을 사용하도록 지정하면 Computed Column 데이터 형식의 모든 열이 게시에서 수직 분할됩니다. 마법사를 사용하지 않을 경우에는 게시에서 이러한 데이터 형식의 열을 제외해야 합니다.

date

'YYYY-MM-DD' 형식의 nchar(10) 값

참고

SQL Server Compact에서는 와이드 문자를 저장합니다. 이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

datetime

Datetime

datetime2

'YYYY-MM-DD hh:mm:ss.nnnnnnn' 형식의 nvarchar(27) 값

참고

SQL Server Compact에서는 와이드 문자를 저장합니다. 이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

datetimeoffset

'YYYY-MM-DD hh:mm:ss.nnnnnnn [+/-] hh:mm' 형식의 nvarchar(34) 값

참고

SQL Server Compact에서는 와이드 문자를 저장합니다. 이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

decimal

지원되지 않습니다. numeric을 사용하십시오.

double precision

double precision

float

float

geography

image

참고

이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

geometry

image

참고

이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

image

image

integer(동의어: int)

integer

money

money

national character(n)(동의어: nchar(n))

national character(n)

national character varying(n)(동의어: nvarchar(n))

national character varying(n)

national character varying(MAX)(동의어: nvarchar(MAX))

ntext

national character varying(MAX) 데이터 길이가 ntext 열 길이를 초과할 경우 SQL Server에서 SQL Server Compact로 데이터를 전송하면 동기화가 실패합니다.

ntext

ntext

numeric(동의어: decimal, dec)

numeric

real

Real

smalldatetime

datetime

datetime 데이터 자릿수가 smalldatetime 열 자릿수를 초과할 경우 SQL Server Compact에서 SQL Server로 데이터를 전송하면 동기화가 실패합니다.

smallint (int 2)

smallint (int 2)

smallmoney

money

money 데이터 자릿수가 smallmoney 열 자릿수를 초과할 경우 SQL Server Compact에서 SQL Server로 데이터를 전송하면 동기화가 실패합니다.

sql_variant

ntext

sql_variant 열에 이진 데이터가 있는 경우 이진 데이터의 바이트는 짝수여야 합니다. 그렇지 않으면 변환 오류가 발생합니다.

text

ntext

text 데이터 길이가 1,073,741,823자를 초과할 경우 SQL Server에서 SQL Server Compact로 데이터를 전송하면 동기화가 실패합니다.

time

'hh:mm:ss.nnnnnnn' 형식의 nvarchar(16) 값

참고

SQL Server Compact에서는 와이드 문자를 저장합니다. 이 유형에 대한 변환 지원은 SQL Server Compact 3.5 SP1 릴리스에서 제공됩니다.

timestamp

지원되지 않습니다.

게시 마법사를 사용할 경우 SQL Server Compact 구독을 사용하도록 지정하면 timestamp 데이터 형식의 모든 열이 게시에서 수직 분할됩니다. 마법사를 사용하지 않을 경우에는 게시에서 이러한 데이터 형식의 열을 제외해야 합니다. timestamp/rowversion 열이 수직 분할되지 않은 경우 이 열의 데이터는 복제되지 않습니다.

tinyint

tinyint

uniqueidentifier

uniqueidentifier

varbinary(n)

varbinary(n)

varbinary(MAX)

image

varbinary(MAX) 데이터 길이가 image 열 길이를 초과할 경우 SQL Server에서 SQL Server Compact로 데이터를 전송하면 동기화가 실패합니다.

varchar

character varying 참조

XML

ntext

복제에서 데이터 매핑을 수행할 필요가 없도록 가능하면 SQL Server와 SQL Server Compact 모두에서 지원하는 데이터 형식을 선택하십시오. 그렇지 않으면 응용 프로그램에서 SQL Server Compact 데이터베이스에 저장된 값의 유효성을 검사하여 복제에서 SQL Server와 SQL Server Compact 간에 해당 값을 매핑할 수 있는지 확인해야 합니다.

기본적으로 date, datetime2, datetimeoffset 및 time을 지원하지 않는 기존 응용 프로그램은 nchar 및 nvarchar와 같이 호환되는 데이터 형식으로 매핑된 데이터를 처리해야 합니다. SQL Server 데이터 형식에 대한 자세한 내용은 SQL Server 온라인 설명서에서 데이터 형식을 참조하십시오.

데이터 형식 제한

다음 제한 사항은 SQL Server Compact 구독자에 적용됩니다.

  • 인덱스

    varchar (MAX), nvarchar(MAX), varbinary(MAX) 및 XML 열에 인덱스가 있는 테이블은 게시할 수 없습니다. 이러한 열 형식은 ntext 또는 image로 매핑되지만 ntext 또는 image 열에는 기본 키를 만들 수 없으므로 SQL Server Compact 구독 만들기가 실패합니다.

  • ID 열

    SQL Server Compact ID 열의 데이터 형식은 integer(int 4) 또는 bigint(int 8)여야 합니다. SQL Server Compact ID 열의 데이터 형식은 smallint, tinyint, decimal 또는 numeric이 될 수 없습니다. integer(int 4) 또는 bigint(int8)가 아닌 ID 열이 있는 게시를 구독하면 SQL Server Compact에서 해당 구독 생성이 실패합니다.

    SQL Server Compact에서는 ALTER TABLEtable_nameALTER COLUMNcolumn_nameIDENTITY(seed,increment) 문을 사용하여 구독자에서 초기값과 증가값을 수정할 수 있습니다. 따라서 ID 범위를 직접 관리할 수 있습니다. 그러나 게시에 ID 열이 포함되어 있고 게시자가 ID 범위를 관리하는 경우에는 구독자에서 초기값이나 증가값을 수정하면 안 됩니다. 할당된 범위 ID보다 큰 초기값을 지정하면 테이블에 새 레코드를 삽입하려고 할 때 SQL Server Compact에서 오류를 반환합니다. 다음에 동기화할 때 게시자는 구독자에 새 ID 범위를 할당하여 이 문제를 해결합니다.

  • 지원되지 않는 데이터 형식

    SQL Server 2005 게시를 구독할 경우에는 computed column, timestamp, date, time, hierarchyid, filestream 및 utcdatetime 데이터 형식이 지원되지 않습니다.

  • SQL Server 및 SQL Server Compact의 CHAR 및 NTEXT 데이터 형식

    SQL Server에서는 CHAR 데이터 형식이 SQL Server Compact에 대한 CHAR 데이터 형식보다 클 수 있습니다. 내용 복제를 위해 큰 CHAR 데이터 형식은 SQL Server Compact에서 NTEXT 데이터 형식으로 변환됩니다. SQL Server와 SQL Server Compact에서 CHAR 열의 데이터 형식은 변경할 수 있지만 NTEXT 열의 데이터 형식은 변경할 수 없습니다. 따라서 SQL Server측에서는 큰 CHAR 데이터 형식을 변경할 수 있지만 SQL Server Compact측에서는 더 이상 CHAR 데이터 형식이 아니므로 변경이 실패합니다.

  • NTEXT 또는 IMAGE 데이터 형식

    열이 ntext로 매핑되어 있는 상태에서 SQL Server가 같은 열에 대한 데이터 형식을 char, nchar 등으로 변경하면 SQL Server Compact 데이터베이스의 열은 구독자가 다시 초기화될 때까지 ntext로 유지됩니다.

참고 항목

관련 자료

데이터 형식과 RDA

관리되는 데이터 형식 매핑(SQL Server Compact)