Datentypen und Replikation

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) unterstützt nicht alle SQL Server-Datentypen vollständig. Als Abonnent von SQL Server-Publikationen müssen von SQL Server Compact Edition nicht unterstützte Typen in solche übersetzt werden, die unterstützt werden.

Unterstützte Datentypen und Datentypzuordnungen

Die folgende Tabelle zeigt die Datentypzuordnungen, die beim Replizieren zwischen SQL Server und Microsoft SQL Server Compact Edition ausgeführt werden. Die Tabelle listet Zuordnungen für jeden SQL Server-Datentyp auf und beschreibt Einschränkungen und spezielle Verhaltensweisen.

SQL Server-Datentyp Datentyp von SQL Server Compact Edition

bigint

bigint

binary(n)

binary(n)

bit

bit

character(n)(Synonym: char(n))

national character(n) - Oder - ntext

Wenn die Länge der Daten maximal 4000 Zeichen beträgt, werden die SQL Server-character-Daten durch die SQL Server Compact Edition-Replikation SQL Server Compact Edition-national character zugeordnet. Andernfalls werden die Zeichendaten SQL Server Compact Edition-ntext zugeordnet. Wenn die Länge der ntext-Daten die Länge der character-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server Compact Edition an SQL Server einen Fehler.

character varying(n)(Synonym: varchar(n))

national character varying - Oder - ntext

Wenn die Länge der Daten maximal 4000 Zeichen beträgt, werden die SQL Server-character varying -Daten von der SQL Server Compact Edition-Replikation SQL Server Compact Edition-national character varying zugeordnet. Andernfalls werden die character varying-Daten SQL Server Compact Edition-ntext zugeordnet. Wenn die Länge der ntext-Daten die Länge der character varying-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server Compact Edition an SQL Server einen Fehler.

character varying(MAX)(Synonym: varchar(MAX))

ntext

Wenn die Länge der character varying(MAX)-Daten die Länge der ntext-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server an SQL Server Compact Edition einen Fehler.

Computed Columns

Nicht unterstützt.

Wenn Sie den Publikations-Assistenten verwenden und angeben, dass SQL Server Compact Edition-Abonnements verwendet werden, wird jede Spalte vom Datentyp Computed Column vertikal aus der Publikation partitioniert. Wenn Sie den Assistenten nicht verwenden, müssen Sie Spalten dieses Datentyps in der Publikation ausschließen.

datetime

datetime

decimal

Nicht unterstützt. Numeric verwenden.

double precision

double precision

float

float

image

image

integer(Synonym: int)

integer

money

money

national character(n)(Synonym: nchar(n))

national character(n)

national character varying(n)(Synonym: nvarchar(n))

national character varying(n)

national character varying(MAX)(Synonym: nvarchar(MAX))

ntext

Wenn die Länge der national character varying(MAX)-Daten die Länge der ntext-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server an SQL Server Compact Edition einen Fehler.

ntext

ntext

numeric(Synonyme: decimal, dec)

numeric

real

real

smalldatetime

datetime

Wenn die Genauigkeit der datetime-Daten die Genauigkeit der smalldatetime-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server Compact Edition an SQL Server einen Fehler.

smallint (int 2)

smallint (int 2)

smallmoney

money

Wenn die Genauigkeit der money-Daten die Genauigkeit der smallmoney-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server Compact Edition an SQL Server einen Fehler.

sql_variant

ntext

Wenn in der sql_variant-Spalte Binärdaten vorhanden sind, müssen diese Binärdaten aus einer geraden Anzahl von Bytes bestehen. Andernfalls kommt es zu einem Konvertierungsfehler.

text

ntext

Wenn die Länge der text-Daten 1.073.741.823 Zeichen überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server an SQL Server Compact Edition einen Fehler.

timestamp

Nicht unterstützt.

Wenn Sie den Publikations-Assistenten verwenden und angeben, dass SQL Server Compact Edition-Abonnements verwendet werden, wird jede Spalte vom Datentyp timestamp vertikal aus der Publikation partitioniert. Wenn Sie den Assistenten nicht verwenden, müssen Sie Spalten dieses Datentyps in der Publikation ausschließen.

tinyint

tinyint

uniqueidentifier

uniqueidentifier

varbinary(n)

varbinary(n)

varbinary(MAX)

image

Wenn die Länge der varbinary(MAX)-Daten die Länge der image-Spalte überschreitet, meldet die Synchronisierung beim Senden der Daten von SQL Server an SQL Server Compact Edition einen Fehler.

varchar

Siehe Zeichenabweichung

XML

ntext

Wählen Sie möglichst Datentypen aus, die sowohl von SQL Server als auch SQL Server Compact Edition unterstützt werden, sodass für die Replikation keine Datenzuordnung nötig ist. Wenn dies nicht möglich ist, sollten von Ihrer Anwendung die Werte überprüft werden, die in der SQL Server Compact Edition-Datenbank gespeichert sind, um sicherzustellen, dass diese Werte von der Replikation zwischen SQL Server und SQL Server Compact Edition zugeordnet werden können.

Weitere Informationen zu SQL Server-Datentypen finden Sie unter "Datentypen" in der SQL Server-Onlinedokumentation.

Datentypeneinschränkungen

Die folgenden Einschränkungen gelten für SQL Server Compact Edition-Abonnenten:

  • Indizes
    Sie können keine Tabellen veröffentlichen, die einen Index auf varchar (MAX)-, nvarchar(MAX)-, varbinary(MAX)- und XML-Spalten aufweisen. Das Erstellen des SQL Server Compact Edition-Abonnements führt zu einem Fehler, weil diese Spaltentypen ntext oder image zugeordnet werden und ein Primärschlüssel nicht auf einer ntext- oder image-Spalte erstellt werden kann.
  • Identitätsspalten
    SQL Server Compact Edition-Identitätsspalten müssen vom Datentyp integer (int 4) oder bigint (int 8) sein. SQL Server Compact Edition-Identitätsspalten dürfen nicht vom Datentyp smallint, tinyint, decimal oder numeric sein. Wenn Sie eine Publikation abonnieren, die eine andere Identitätsspalte als integer (int 4) oder bigint (int8) besitzt, führt das Erstellen dieses Abonnements bei SQL Server Compact Edition zu einem Fehler.
    SQL Server Compact Edition gibt Ihnen die Möglichkeit, den Ausgangs- und den Inkrementwert auf dem Abonnenten zu ändern, indem Sie die Anweisung ALTER TABLEtable_nameALTER COLUMNcolumn_nameIDENTITY (seed,increment) verwenden. Damit können Sie Identitätsbereiche manuell verwalten. Wenn zu Ihrer Publikation allerdings eine Identitätsspalte gehört und der Identitätsbereich vom Verleger verwaltet wird, sollten Sie den Anfangs- oder Inkrementwert auf dem Abonnenten nicht ändern. Wenn Sie einen Anfangswert angeben, der größer als der zugeordnete Identitätsbereich ist, wird von SQL Server Compact Edition ein Fehler zurückgegeben, wenn Sie versuchen, einen neuen Datensatz in die Tabelle einzufügen. Beim nächsten Synchronisieren wird das Problem vom Verleger behoben, indem Ihrem Abonnenten ein neuer Identitätsbereich zugeordnet wird.
  • Nicht unterstützte Datentypen
    Beim Abonnieren einer SQL Server 2000-Publikation werden die Datentypen computed column und timestamp nicht unterstützt. Beim Abonnieren einer SQL Server 2005-Publikation werden die Datentypen computed column, timestamp, date, time und utcdatetime nicht unterstützt.
  • CHAR- und NTEXT-Datentypen in SQL Server und SQL Server Compact Edition
    In SQL Server kann der CHAR-Datentyp größer sein als der CHAR-Datentyp in SQL Server Compact Edition. Zum Replizieren der Inhalte wird der große CHAR-Datentyp in SQL Server Compact Edition in den NTEXT-Datentyp konvertiert. Obwohl es in SQL Server und SQL Server Compact Edition zulässig ist, den Datentyp einer CHAR-Spalte zu ändern, ist es in beiden Programmen nicht möglich, den Datentyp einer NTEXT-Spalte zu ändern. . Obwohl es also möglich wäre, einen großen CHAR-Datentyp in SQL Server zu ändern, würde diese Änderung in SQL Server Compact Edition zu einem Fehler führen, weil es sich nicht mehr um einen CHAR-Datentyp handelt.
  • NTEXT- oder IMAGE-Datentypen
    Wenn eine Spalte ntext zugeordnet wird und von SQL Server der Datentyp für die gleiche Spalte in char, nchar usw. geändert wird, bleibt die Spalte in der SQL Server Compact Edition-Datenbank vom Typ ntext, bis der Abonnent erneut initialisiert wird.

Siehe auch

Konzepte

Datentypen und Remotedatenzugriff (Remote Data Access – RDA)

Sonstige Ressourcen

Datentypzuordnungen (SQL Server Compact Edition)

Hilfe und Information

Informationsquellen für SQL Server Compact Edition