BEISPIEL
BEISPIEL
Kapitel 10: SQL Server
Aufruf aus einem Access-Programm heraus (ADP):
CurrentProject.Connection.Execute "CREATE DATABASE abc"
Erzeugen einer Datenbank, mit einer Anfangsgröße von 14 MByte, einer Maximalgröße von 100 MByte und
einer automatischen Vergrößerung um jeweils 1 MByte. Der Speicherort wird explizit vorgegeben.
CREATE DATABASE Products ON (
NAME = buch_dat,
FILENAME = 'buch.mdf',
SIZE = 14,
MAXSIZE = 100,
FILEGROWTH = 1 )
Erzeugen und Verwalten von Tabellen
Nach dem Erstellen der Datenbank können wir die gewünschten Tabellen erzeugen oder aus anderen
Datenquellen importieren. Neben neuen Datentypen sind auch einige Änderungen gegenüber reinen
Access-Datenbanken zu beachten. So ist es zwar unter bestimmten Umständen möglich, externe Daten-
quellen einzubinden, diese sind jedoch teilweise schreibgeschützt. Handelt es sich um lokale Datenquellen,
sollten Sie sich für den Import entscheiden.
Tabellen in Access erzeugen/verwalten
Arbeiten Sie mit einem Access-Projekt (ADP), ist das Verwalten und Erstellen von Tabellen genauso ein-
fach wie in einer Access-Datenbank. Nach dem Aufruf des Tabellenentwurfs-Fensters zeigen sich jedoch
einige optische Unterschiede:
Abbildung 10.20 Tabelle in der Access-Entwurfsansicht
630
Legen Sie zunächst wie gewohnt den Namen der Spalte fest. Bei den Datentypen (siehe Tabelle 10.11) wer-
den Sie sicher zum ersten Mal stutzig, müssen Sie doch teilweise neben der Größe auch die Genauigkeit und
die Dezimalstellen angeben. Sollten Sie den Datentyp AutoWert vermissen, gedulden Sie sich noch etwas.
Die Option NULL zulassen ist Ihnen sicher auch aus Access bekannt. Spätestens beim Standardwert werden
Sie jedoch erstmals mit dem Client/Server-Prinzip Bekanntschaft machen. So können Sie zwar auch hier
Standardwerte für Tabellenspalten vorgeben, diese werden jedoch erst nach dem Speichern eingetragen.
Der Hintergrund: Da der Standardwert auf dem SQL Server gespeichert ist, kann auch erst der Server die
Werte eintragen. In Access-Datenbanken wird dieser Wert sofort nach dem Erstellen des neuen Datensatzes
angezeigt. Neben einfachen Ausdrücken können Sie hier auch Funktionen wie GetDate oder suser_sname
aufrufen, um zum Beispiel den Benutzer eintragen zu lassen, der den Datensatz erzeugt hat.
Mit Identität oder auch Identity haben Sie das Pendant für das Access-Zählerfeld gefunden. Basierend auf
dem Datentyp Integer (32-Bit-Wert) bietet auch der SQL Server die Möglichkeit, Spalten mit eindeutigen
IDs zu erzeugen. Gegenüber einem Access-Zählerfeld können Sie hier zusätzlich den Startwert und das
Inkrement angeben.
Die Option Ist RowGuid ist im Zusammenhang mit der Replikation von Bedeutung und ermöglicht eine
schnellere Bearbeitung.
Den Primärschlüssel legen Sie genau wie auch bei Access-Datenbanken fest (z.B. rechte Maustaste).
Ebenfalls über die rechte Maustaste können Sie die Tabellen-Eigenschaften anzeigen bzw. bearbeiten. Dazu
zählen neben Einschränkungen auch Beziehungen und weitere Indizes.
Abbildung 10.21 Tabellen-Eigenschaften
631
Praktisches Arbeiten mit dem SQL Server
HINWEIS
HINWEIS
Kapitel 10: SQL Server
Mit den Einschränkungen (Constraints) steht Ihnen als Programmierer ein wichtiges Werkzeug zur Siche-
rung der Datenintegrität zur Verfügung. Ähnlich den Gültigkeitsregeln von Access können Sie hier sicher-
stellen, dass nur Datensätze in der Tabelle stehen bzw. eingetragen werden, die dieses Kriterium erfüllen.
Allerdings ist die Art und Weise, wie Sie später bei einem Verstoß gegen diese Einschränkung benachrich-
tigt werden, nicht gerade motivierend, es tritt ein Laufzeitfehler auf, den Sie erst umständlich auswerten
müssen. Wir werden uns mit diesem Thema an anderer Stelle noch eingehender beschäftigen.
An dieser Stelle nur so viel:
Betrachten Sie die Einschränkungen als letztes Mittel zum Sichern der Datenintegrität, verwenden Sie besser
einen Trigger bzw. eine Gespeicherte Prozedur, um Gültigkeitsprüfungen vorzunehmen.
Neben den Einschränkungen verdienen auch die Indizes eine nähere Betrachtung. Wie auch bei Access-
Datenbanken lassen sich einzelnen oder auch mehreren Spalten Indizes zuordnen.
Abbildung 10.22 Index-Eigenschaften
Gänzlich neu für den Access-Programmierer dürften die Begriffe Füllfaktor und Clustered sein. Mit dem
Füllfaktor geben Sie an, zu wie viel Prozent eine Indexseite belegt wird. Ist eine Indexseite gefüllt und muss
ein neuer Eintrag eingefügt werden, ist dieser Vorgang recht aufwändig. Günstiger (aber nicht so platz-
sparend) ist es, wenn freier Platz für das Einfügen weiterer Einträge gelassen wird.
Handelt es sich um schreibgeschützte Daten, können Sie den Füllfaktor mit 100% angeben.
Die Option Clustered erstellt einen gruppierten Index, bei dem die physikalische Reihenfolge der Zeilen in
der Tabelle gleich der logischen (indizierten) Reihenfolge der Schlüsselwerte ist. Natürlich kann es nur
632

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.