数据类型和 RDA

对于通过远程数据访问 (RDA) 来访问 Microsoft SQL Server 数据库中的数据,下表显示了支持的数据类型和数据类型映射以及不支持的数据类型。

支持的数据类型

SQL Server 数据类型 SQL Server Compact 3.5 数据类型

bigint (int 8)

bigint

binary (n)

binary (n)

bit

bit

Character (n)(同义词:char (n)

national character (n) 或ntext

如果数据的长度为 4000 个字符或更少,则 RDA 将 SQL Server character 数据映射到 SQL Server Compact national character。否则,将数据映射到 SQL Server Compact ntext。

如果 ntext 数据的长度超过字符列的长度,那么当数据从 SQL Server Compact 发送到 SQL Server 时推送会失败。

character varying (n|max) (同义词:char varyingvarchar (n|max))

national character varying (n) 或ntext

如果数据的长度为 4000 个字符或更少,则 RDA 将 SQL Server character varying 数据映射到 SQL Server Compact national character varying;否则,将数据映射到 SQL Server Compact ntext

如果 character varying (max) 数据的长度超过 ntext 列的长度,那么当数据从 SQL Server 发送到 SQL Server Compact 时推送会失败。

date

“YYYY-MM-DD”形式的 nchar(10) 值

ms173018.note(zh-cn,SQL.100).gif注意:
SQL Server Compact 存储宽字符。对此类型的转换支持由 SQL Server Compact SP1 版本提供。

datetime

datetime

datetime2

“YYYY-MM-DD hh:mm:ss.nnnnnnn”形式的 nvarchar(27) 值

ms173018.note(zh-cn,SQL.100).gif注意:
SQL Server Compact 存储宽字符。对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

datetimeoffset

“YYYY-MM-DD hh:mm:ss.nnnnnnn [+/-] hh:mm”形式的 nvarchar(34) 值

ms173018.note(zh-cn,SQL.100).gif注意:
SQL Server Compact 存储宽字符。对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

decimal

不支持。请使用 numeric

double precision

double precision

float

float

filestream

image

ms173018.note(zh-cn,SQL.100).gif注意:
对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

geography

image

ms173018.note(zh-cn,SQL.100).gif注意:
对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

geometry

image

ms173018.note(zh-cn,SQL.100).gif注意:
对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

hierarchyid

image

ms173018.note(zh-cn,SQL.100).gif注意:
对此类型的转换支持由 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)

national character varying (n)

national character varying (max) (同义词:nvarchar (max)

ntext

如果 national character varying (max) 数据的长度超过 ntext 列的长度,那么当数据从 SQL Server 发送到 SQL Server Compact 时推送会失败。

ntext

ntext

numeric(同义词:decimaldec

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 时同步会失败。

text

ntext

如果 text 数据的长度超过 1,073,741,823 个字符,那么当数据从 SQL Server 发送到 SQL Server Compact 时同步会失败。

time

“hh:mm:ss.nnnnnnn”形式的 nvarchar(16) 值

ms173018.note(zh-cn,SQL.100).gif注意:
SQL Server Compact 存储宽字符。对此类型的转换支持由 SQL Server Compact 3.5 SP1 版本提供。

tinyint

tinyint

uniqueidentifier

uniqueidentifier

varbinary (n)

varbinary (n)

varbinary (max)

image

如果 varbinary (max) 数据的长度超过 image 列的长度,那么当数据从 SQL Server 发送到 SQL Server Compact 时同步会失败。

XML

ntext

不支持的数据类型

数据类型 说明

sql_variant, UTCDATETIME, UDT

不支持

不要将此数据类型的列包括在 RDA Pull 方法中。

使用数据类型

如果可能,请选择 SQL Server 和 SQL Server Compact 都支持的数据类型。这样,RDA 就不必执行数据映射。如果这是不可能的,请确保您的应用程序验证 SQL Server Compact 中存储的值,以确保 RDA 可以在 SQL Server 和 SQL Server Compact 之间映射这些值。

本身不支持 datedatetime2datetimeoffsettime 的现有应用程序需要处理映射到兼容数据类型(如 ncharnvarchar)的数据。

不能从主键类型为 charvarchar 且长度大于 4000 个字符的表请求数据。长度大于 4000 个字符的这些列类型将映射为 ntext,并且无法在 ntext 列上创建主键。

在重新初始化订阅之前,只要数据类型映射到 SQL Server Compact 订阅数据库中的 ntext,它就仍为 ntext,即使在 SQL Server 中更改了该类型。此外,如果在 SQL Server Compact 中将数据类型映射为 ntext,则 SQL Server 数据类型上的任何索引(如 nvarchar (MAX))都将被忽略,并且不会在 SQL Server Compact 中创建。

另请参见

概念

数据类型和复制

其他资源

托管数据类型映射 (SQL Server Compact)

帮助和信息

获取帮助 (SQL Server Compact 3.5 Service Pack 1)