Compartir a través de


Tipos de datos y réplica

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) no es totalmente compatible con todos los tipos de datos de SQL Server. Como suscriptor a publicaciones de SQL Server, SQL Server Compact Edition debe traducir los tipos incompatibles en aquellos que sí lo son.

Tipos de datos compatibles y asignaciones de tipos de datos

En la siguiente tabla se muestran las asignaciones de tipos de datos que se realizan al replicar entre SQL Server y Microsoft SQL Server Compact Edition. En la tabla se enumeran las asignaciones para cada tipo de datos de SQL Server y se describen las restricciones o los comportamientos especiales.

Tipo de datos de SQL Server Tipo de datos de SQL Server Compact Edition

bigint

bigint

binary(n)

binary(n)

bit

bit

character(n)(sinónimo: char(n))

national character(n) o bien ntext

Si la longitud de los datos es de 4000 caracteres o menos, la réplica de SQL Server Compact Edition asigna los datos character de SQL Server a national character de SQL Server Compact Edition. De lo contrario, asigna los datos de caracteres a ntext de SQL Server Compact Edition. Si la longitud de los datos ntext supera la de la columna character, no se realiza la sincronización cuando se envían los datos de SQL Server Compact Edition a SQL Server.

character varying(n)(sinónimo:

national character varying o bien ntext

Si la longitud de los datos es de 4000 caracteres o menos, la réplica de SQL Server Compact Edition asigna los datos character varying de SQL Server a national character varying de SQL Server Compact Edition; de lo contrario, asigna los datos de tipo character varying a ntext de SQL Server Compact Edition. Si la longitud de los datos ntext supera la de la columna character varying, no se realiza la sincronización cuando se envían los datos de SQL Server Compact Edition a SQL Server.

character varying(MAX)(sinónimo: varchar(MAX))

ntext

Si la longitud de los datos character varying(MAX) supera la de la columna ntext, no se realiza la sincronización cuando se envían los datos de SQL Server a SQL Server Compact Edition.

Computed Columns

No compatible.

Si utiliza el asistente para publicaciones e indica que se utilizarán suscripciones de SQL Server Compact Edition, cualquier columna del tipo de datos Computed Column se quita verticalmente de la publicación. Si no utiliza el asistente, debe excluir las columnas de este tipo de datos de la publicación.

datetime

datetime

decimal

No compatible. Utilice numeric.

double precision

double precision

float

float

image

image

integer(sinónimo: int)

integer

money

money

national character(n)(sinónimo:

national character(n)

national character varying(n)(sinónimo:

national character varying(n)

national character varying(MAX)(sinónimo:

ntext

Si la longitud de los datos national character varying(MAX) supera la de la columna ntext, no se realiza la sincronización cuando se envían los datos de SQL Server a SQL Server Compact Edition.

ntext

ntext

numeric(sinónimos: decimal, dec)

numeric

real

real

smalldatetime

datetime

Si la precisión de los datos datetime supera la de la columna smalldatetime, no se realiza la sincronización cuando se envían los datos de SQL Server Compact Edition a SQL Server.

smallint (int 2)

smallint (int 2)

smallmoney

money

Si la precisión de los datos money supera la de la columna smallmoney, no se realiza la sincronización cuando se envían los datos de SQL Server Compact Edition a SQL Server.

sql_variant

ntext

Si existen datos binarios en la columna sql_variant, deben ser un número par de bytes o, de lo contrario, se producirá un error de conversión.

text

ntext

Si la longitud de los datos text supera 1.073.741.823 caracteres, no se realiza la sincronización cuando se envían los datos de SQL Server a SQL Server Compact Edition.

timestamp

No compatible.

Si utiliza el asistente para publicaciones e indica que se utilizarán suscripciones de SQL Server Compact Edition, cualquier columna del tipo de datos timestamp se quita verticalmente de la publicación. Si no utiliza el asistente, debe excluir las columnas de este tipo de datos de la publicación.

tinyint

tinyint

uniqueidentifier

uniqueidentifier

varbinary(n)

varbinary(n)

varbinary(MAX)

image

Si la longitud de los datos varbinary(MAX) supera la de la columna image, no se realiza la sincronización cuando se envían los datos de SQL Server a SQL Server Compact Edition.

varchar

Vea character varying.

XML

ntext

Siempre que sea posible, elija tipos de datos compatibles tanto con SQL Server como con SQL Server Compact Edition, a fin de que no sea necesario que la réplica realice la asignación de datos. Si ello no es posible, la aplicación debería validar los valores almacenados en la base de datos de SQL Server Compact Edition para garantizar que la réplica pueda asignar estos valores entre SQL Server y SQL Server Compact Edition.

Para obtener más información acerca de los tipos de datos de SQL Server, vea el tema sobre tipos de datos en los Libros en pantalla de SQL Server.

Restricciones de tipos de datos

Se aplican las siguientes restricciones a los suscriptores de SQL Server Compact Edition:

  • Índices
    No se puede publicar una tabla con un índice en las columnas varchar (MAX), nvarchar(MAX), varbinary(MAX) y XML. La creación de la suscripción de SQL Server Compact Edition no se lleva a cabo porque estos tipos de columnas se asignan a ntext o image y no se pueden crear claves principales en una columna ntext o image.
  • Columnas de identidad
    Las columnas de identidad de SQL Server Compact Edition deben tener un tipo de datos integer (int 4) o bigint (int 8). Las columnas de identidad de SQL Server Compact Edition no pueden tener un tipo de datos smallint, tinyint, decimal o numeric. Si se suscribe a una publicación que tenga una columna de identidad diferente de integer (int 4) o bigint (int8), no se podrá crear la suscripción en SQL Server Compact Edition.
    SQL Server Compact Edition le permite modificar los valores de inicialización e incremento en el suscriptor utilizando la instrucción ALTER TABLEnombre_de_tablaALTER COLUMNnombre_de_columnaIDENTITY (inicial,incremento). Esto le permite administrar los intervalos de identidad manualmente. Sin embargo, si la publicación incluye una columna de identidad y el intervalo se identidad se administra mediante el publicador, no debería modificar los valores de inicialización o incremento en el suscriptor. Si especifica una inicialización superior al intervalo de identidad asignado, SQL Server Compact Edition devolverá un error cuando intente insertar un nuevo registro en la tabla. La próxima vez que sincronice, el publicador corrige el problema al asignar al suscriptor un nuevo intervalo de identidad.
  • Tipos de datos no compatibles
    Cuando se suscriba a una publicación de SQL Server 2000, los tipos de datos computed column y timestamp no son compatibles. Cuando se suscriba a una publicación de SQL Server 2005, los tipos de datos computed column, timestamp, date, time y utcdatetime no son compatibles.
  • Tipos de datos CHAR y NTEXT en SQL Server y SQL Server Compact Edition
    SQL Server permite que el tipo de datos CHAR sea mayor que el tipo de datos CHAR para SQL Server Compact Edition. Para replicar el contenido, el tipo de datos CHAR grande se convierte en tipos de datos NTEXT en SQL Server Compact Edition. Aunque SQL Server y SQL Server Compact Edition permiten el cambio del tipo de datos de una columna CHAR, ninguno de ellos permite cambiar el tipo de datos de una columna NTEXT. . Por lo tanto, aunque sería posible cambiar un tipo de datos CHAR grande en SQL Server, el cambio no funcionaría en SQL Server Compact Edition porque ya no es un tipo de datos CHAR.
  • Tipos de datos NTEXT o IMAGE
    Si se asigna una columna a ntext y SQL Server cambia el tipo de datos de la misma columna a char, nchar, etc., la columna de la base de datos de SQL Server Compact Edition seguirá siendo ntext hasta que se reinicialice el suscriptor.

Vea también

Conceptos

Tipos de datos y RDA

Otros recursos

Asignaciones de tipos de datos (SQL Server Compact Edition)

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition