Von Access zum SQL Server: Der Einstieg

Autor: Klaus Giesen, Wuppertal

Obwohl Access nicht nur ein komfortables, sondern auch ein leistungsfähiges Datenbanksystem ist, kann es vorkommen, dass Sie an seine Leistungsgrenzen stoßen. Diese Situation wird zwar nur bei einem Einsatz von Access in einer Netzwerkumgebung auftreten, doch da gerade Access sehr häufig auch in einer solchen Umgebung eingesetzt wird, ist auch diese Thematik für einen größeren Personenkreis relevant. Glücklicherweise stellt Ihnen Access 2000 zur Lösung einer solchen Problematik eine verblüffend einfache und obendrein auch noch preiswerte Lösung zur Verfügung: Die so genannte MSDE, die ein zwar abgespeckter, aber trotzdem vollwertiger und leistungsfähiger SQL-Server ist.

Dieser Beitrag soll zeigen, wie Sie eine Access-Datenbank auf den SQL-Server bzw. die MSDE portieren. Es geht dabei lediglich um einen Einstieg in die Welt der SQL-Server. Andererseits ist dieser Lösungsansatz sicherlich für einen Großteil der Anforderungen vollkommen ausreichend.

Bei der Portierung einer Access-Datenbank auf die MSDE gibt es verschiedene Regeln zu beachten, die mit unterschiedlichen Datentypen, eingebauten Funktionen und der unterschiedlichen Funktionalität zusammenhängen. Außerdem verfügt ein Access-Projekt bzw. die MSDE über Objekte, die eine Access-MDB gar nicht kennt.

Aus Platzgründen wird nur auf die wichtigsten Unterschiede eingegangen. Einzelheiten entnehmen Sie der Dokumentation zur MSDE.

Gegenüberstellung von Datenbankobjekten

Zunächst eine Gegenüberstellung von Datenbankobjekten, die Ihnen in einem Access-Projekt bzw. in einer Access-MDB begegnen können (s. Tabelle 1).

Access-MDB

Access-Projekt

Tabelle

Tabelle

Auswahlabfrage

Sicht (View)

Aktions- bzw. Parameterabfrage

Gespeicherte Prozedur

Beziehung

Datenbankdiagramm

Formular

Formular

Bericht

Bericht

Datenzugriffsseite

Datenzugriffsseite

Makro

Makro

Modul

Modul

Tab. 1: Gegenüberstellung von Datenbankobjekten

Die typischen MSDE-Objekte werden weiter unten erläutert.

Gegenüberstellung von Datentypen

In Access stehen neun Datentypen zur Verfügung, wobei beim Datentyp Zahl über die Eigenschaft Feldgröße weitere Einstellungen vorgenommen werden können. Die MSDE kennt einige weitere Datentypen (s. Tabelle 2).

Hyperlink-Felder aus Access werden in den Datentyp NTEXT umgewandelt und verlieren ihre Funktionalität.

MSDE

Access

VARCHAR, NVARCHAR

Text

CHAR, NCHAR

Text

TEXT, NTEXT

Memo

TINYINT

Zahl (Byte)

SMALLINT

Zahl (Integer)

INT

Zahl, AutoWert (Long Integer)

REAL

Zahl (Single)

FLOAT

Zahl (Double)

UNIQUEIDENTIFIER

Zahl (Replikations-ID)

BIT

Ja/Nein

MONEY, SMALLMONEY

Währung

DATETIME, SMALLDATETIME

Datum/Zeit

IMAGE

OLE-Objekt

keine Entsprechung

Hyperlink

TIMESTAMP

keine Entsprechung

Tab. 2: Gegenüberstellung der Datentypen

Weiterhin erlaubt die MSDE noch benutzerdefinierte Datentypen, für die es bei Access kein Gegenstück gibt.

Gegenüberstellung des SQL-Befehlssatzes

Der SQL-Befehlssatz von Access und der MSDE bzw. dessen Implementierung ist in einigen Punkten doch recht unterschiedlich. Neben Zeichen und Operatoren (letzter Abschnitt) gibt es weitere wichtige Unterschiede:

Ausgabefelder

Access erlaubt in einer Abfrage mehrere Ausgabefelder mit gleichem Namen, die MSDE erlaubt dies in einem View nicht.

SQL-Element DISTINCTROW

Access unterstützt dieses Element und erlaubt darüber hinaus die Auswahl von eindeutigen Datensätzen. Die MSDE unterstützt diese Funktionen nicht.

Vergleich von

Access

MSDE

Datumsangaben

Leiterzeichen (#)

Einfaches Anführungszeichen (”)

Zeichenfolge

Einfaches (”) oder doppelte Anführungszeichen (“)

Einfaches Anführungszeichen (”)

Mod-Operator

Mod

Prozentzeichen (%)

Verkettung von Zeichenfolgen

Ampersand (&)

Pluszeichen (+)

Platzhalter für ein einzelnes Zeichen

Fragezeichen ()

Unterstrich (_)

Platzhalter für keines oder mehrere Zeichen

Sternzeichen (*)

Prozentzeichen (%)

Konstante für True

Ja, Ein, Wahr, -1

1

Konstante für False

Nein, Aus, Falsch, 0

0

Tab. 3: Vergleich von Trennzeichen und Operatoren

SQL-Befehle COMMIT UND LOCK

Diese SQL-Befehle für Zugriffsrechte werden von Access nicht unterstützt, können dort aber mithilfe von VBA nachgebildet werden.

VBA-Anweisungen in SQL

Access erlaubt die Verwendung von beliebigen SQL-Anweisungen. Diese nicht unerhebliche Funktionserweiterung steht für die MSDE nicht zur Verfügung.

Trennzeichen und Operatoren

Die MSDE und Access verwenden unterschiedliche Trennzeichen, Operatoren, Platzhalterzeichen in der WHERE-Klausel eines SQL-Strings und Zeichen für Datums- bzw. Textangaben.

Die Unterschiede werden in Tabelle 3 gegenübergestellt.

Abb. 1: Datenbankdiagramm

Abb. 2: Formular-Steuerelement als Kriterium in einer Access-Auswahlabfrage

Spezielle MSDE-Objekte

In den folgenden Abschnitten lernen Sie einige typische MSDE-Objekte und ihre wichtigsten Eigenschaften kennen.

Datenbankdiagramme

Datenbankdiagramme entsprechen im Prinzip dem Beziehungsfenster von Access.

Nur können dort neben dem reinen Festlegen und Bearbeiten von Beziehungen beispielsweise auch Tabellen- und Feldeigenschaften sowie Indizes angelegt bzw. bearbeitet werden (s. Abb. 1).

Views

Views entsprechen den Auswahlabfragen in Access – mit einigen wichtigen Unterschieden:

  • Die Verwendung der ORDER BY-Klausel ist nicht möglich. Eine gewünschte Sortierung muss mithilfe einer gespeicherten Prozedur realisiert werden.
  • Views dürfen keine Parameter enthalten. Auch hier muss eine gespeicherte Prozedur verwendet werden, falls Parameter übergeben werden müssen.
  • Views können keine Verweise auf Formulare oder Steuerelemente in Formularen enthalten.
  • Sie können beispielsweise keine Kriterien in Sichten verwenden, wie Sie das bisher in Access-Abfragen getan haben – z. B. wie in der in Abb. 2 dargestellten Abfrage.

    Gespeicherte Prozeduren

    Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar