Aufpassen bei SQL Server Compact Edition Datentypen

Da ich gerade mit dem SQL Server Compact Edition arbeite möchte ich Euch auf ein paar Besonderheiten bezüglich der Datentypen der SQL Server CE hinweisen.

Denn bei der Compact Edition fehlen leider einige Datentypen, die bei der Express- wie auch den kostenpflichtigen SQL-Server – Versionen zur Verfügung stehen.

Eigenarten bezüglich dem Visual Studio und der Compact Edtion werde ich in einem anderen Artikel weiter erläutern.

Eine praktische Einführung hierfür findet Ihr in meinem Video-Tutorial: Vb.net und SQL Server Compact Edition

Unterschiedliche Datentypen

Das Beachten der verschiedenen Datentypen ist einerseits wichtig für das Erstellen von Tabellen, aber auch für das Verhalten des Servers beim Replizieren.

Außerdem kann es vorallem beim Umstellen einer Applikation von einer „echten“ SQL-Server Anwendung auf eine Compact- Variante zu erhöhten Problemen kommen (hierfür empfehle ich Euch den bereits oben erwähnten Artikel zu lesen).

Die folgende Tabelle, die Ihr auch auf einer der msdn-Seiten von Microsoft findet, zeigt die Datentypzuordnungen, welche beim Replizieren zwischen SQL Server und Microsoft SQL Server Compact Edition ausgeführt werden.

Sie listet die Zuordnungen der SQL Server-Datentypen 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 Zeichenlänge 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 Zeichenlänge 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

wird nicht unterstützt.

Wenn Ihr den Publikations-Assistenten verwendet 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

wird nicht unterstützt. Bitte 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 Du den Publikations-Assistenten verwendest und angibst, 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