Verschieben von Access-Daten in eine SQL Server-Datenbank mithilfe des Upsizing-Assistenten

Die meisten Datenbankanwendungen werden im Laufe der Zeit immer umfangreicher und komplexer und müssen immer mehr Benutzer unterstützen. Daher ist möglicherweise auch für Ihre Microsoft Office Access-Anwendung irgendwann einmal der Zeitpunkt gekommen, zu dem Sie daran denken, ein Upsizing in eine Microsoft SQL Server-Datenbank durchzuführen, um die Leistungsfähigkeit, die Skalierbarkeit, die Verfügbarkeit, die Sicherheit, die Zuverlässigkeit und die Wiederherstellbarkeit zu optimieren.

Inhalt dieses Artikels


Informationen zum Upsizing einer Microsoft Office Access-Datenbank

Beim Upsizing werden einige oder alle Datenbankobjekte (Datenbankobjekte: Eine Access-Datenbank enthält Objekte wie Tabellen, Abfragen, Formulare, Berichte, Seiten, Makros und Module. Ein Access-Projekt enthält Objekte wie Formulare, Berichte, Seiten, Makros und Module.) aus einer Access-Datenbank in eine neue oder eine vorhandene SQL Server-Datenbank oder ein neues Access-Projekt (Microsoft Access-Projekt: Eine Access-Datei, über die eine Verbindung zu einer Microsoft SQL Server-Datenbank hergestellt und die zum Erstellen von Client/Server-Anwendungen verwendet wird. Eine Projektdatei enthält keine Daten oder auf Datendefinitionen basierende Objekte wie Tabellen und Ansichten.) (*.adp) migriert.

Vorteile des Upsizings einer Datenbank nach SQL Server

  • Hohe Leistung und Skalierbarkeit    In vielen Fällen bietet SQL Server mehr Leistungsfähigkeit als eine Access-Datenbank. SQL Server unterstützt zudem auch sehr umfangreiche Datenbanken im Terabytebereich und damit also weit größere Datenbanken als die gegenwärtig für eine Access-Datenbank unterstützte Größenordnung von 2 Gigabyte. Daneben ist auch die Arbeitsweise von SQL Server sehr effizient, da Abfragen parallel verarbeitet werden (indem mehrere systemeigene Threads innerhalb eines einzigen Prozesses zum Verarbeiten von Benutzeranforderungen verwendet werden), und auch wenn weitere Benutzer hinzukommen, sind die Anforderungen im Hinblick auf mehr Speicherkapazität nur minimal.
  • Bessere Verfügbarkeit    SQL Server ermöglicht eine dynamische inkrementelle oder vollständige Datensicherung der Datenbank, während diese verwendet wird. Dementsprechend müssen Sie die Benutzer nicht zum Verlassen der Datenbank auffordern, bevor Sie eine Datensicherung erstellen können.
  • Verbesserte Sicherheit    Unter Verwendung einer vertrauenswürdigen Verbindung kann SQL Server in die Windows-Systemsicherheit integriert werden, wodurch ein einziger integrierter Zugriff auf das Netzwerk und die Datenbank ermöglicht wird und damit die Vorteile beider Sicherheitssysteme genutzt werden. Auf diese Weise lassen sich komplexe Sicherheitsschemas erheblich einfacher verwalten.
  • Sofortige Wiederherstellbarkeit    Für den Fall eines Systemausfalls (wie einem Betriebssystemabsturz oder einem Stromausfall) verfügt SQL Server über einen automatischen Wiederherstellungsmechanismus, mit dem in wenigen Minuten der letzte als ordnungsgemäß bekannte Konsistenzzustand wiederhergestellt wird, ohne dass der Datenbankadministrator eingreifen muss.
  • Serverbasierte Verarbeitung    Wenn SQL Server in einer Client-/Serverkonfiguration verwendet wird, reduziert sich der Netzwerkverkehr, indem Datenbankabfragen auf dem Server verarbeitet werden, bevor die Ergebnisse an den Client gesendet werden. Die Verarbeitung auf dem Server ist in der Regel erheblich effizienter, insbesondere, wenn mit großen Datensätzen gearbeitet wird.

Ihre Anwendung kann zudem auch mit benutzerdefinierten Funktionen (Benutzerdefinierte Funktion: Eine Abfrage, die Eingabeparameter annimmt und ein Ergebnis wie eine gespeicherte Prozedur zurückgibt. Typen: Skalar [mehrere Anweisungen; gibt einen Wert zurück], Inline [einzelne Anweisung; ein aktualisierbarer Tabellenwert] und Tabelle [mehrere Anweisungen; Tabellenwert].), gespeicherten Prozeduren (Gespeicherte Prozedur: Eine vorkompilierte Auflistung von SQL-Anweisungen und optionalen Datenflusskontroll-Anweisungen, die unter einem Namen gespeichert und als Einheit verarbeitet werden. Die Auflistung wird in einer SQL-Datenbank gespeichert und kann durch einen Aufruf aus einer Anwendung heraus gestartet werden.) und Triggern (Trigger: Ein spezieller Typ einer gespeicherten Prozedur, der automatisch ausgeführt wird, wenn Daten in einer angegebenen Tabelle geändert werden. Trigger werden oft erstellt, um referenzielle Integrität oder Konsistenz zwischen logisch verwandten Daten in verschiedenen Tabellen zu erzwingen.) arbeiten, um die Anwendungslogik, Geschäftsregeln und -richtlinien, komplexe Abfragen, Gültigkeitsprüfung von Daten sowie Code zur referenziellen Integrität zentral auf dem Server abzulegen und gemeinsam zu nutzen, damit diese Prozesse nicht auf dem Client erfolgen müssen.

Methoden zum Upsizing

Der Upsizing-Assistent verschiebt Datenbankobjekte und die hierin enthaltenen Daten von einer Access-Datenbank in eine neue oder bereits vorhandene SQL Server-Datenbank.

Es gibt drei Möglichkeiten zur Verwendung des Upsizing-Assistenten:

Vor dem Upsizing einer Access-Datenbank

Erwägen Sie die nachstehenden Maßnahmen, bevor Sie ein Upsizing Ihrer Access-Datenbank in eine SQL Server-Datenbank oder ein Access-Projekt durchführen:

  • Sichern der Datenbank     Obwohl der Upsizing-Assistent keine Daten oder Datenbankobjekte aus der Access-Datenbank entfernt, empfiehlt es sich, eine Datensicherung der Access-Datenbank zu erstellen, bevor Sie ein Upsizing durchführen.
  • Sicherstellen von ausreichend Festplattenkapazität     Das Gerät, auf dem sich die Datenbank nach dem Upsizing befinden soll, muss über ausreichend Festplattenkapazität verfügen. Der Upsizing-Assistent ist am leistungsfähigsten, wenn mehr als genug Festplattenkapazität zur Verfügung steht.
  • Erstellen von eindeutigen Indizes     Eine verknüpfte Tabelle muss über einen eindeutigen Index verfügen, damit sie in Access aktualisiert werden kann. Der Upsizing-Assistent kann ein Upsizing eines vorhandenen eindeutigen Index durchführen, kann jedoch keinen eindeutigen Index erstellen, wenn ein solcher nicht vorhanden ist. Wenn Sie also in der Lage sein möchten, Ihre Tabellen zu aktualisieren, müssen Sie jeder Access-Tabelle vor dem Upsizing einen eindeutigen Index hinzufügen.
  • Sicherstellen der geeigneten Berechtigungen für die SQL Server-Datenbank
    • Für das Upsizing einer vorhandenen Datenbank benötigen Sie die Berechtigungen CREATE TABLE und CREATE DEFAULT.
    • Zum Erstellen einer neuen Datenbank benötigen Sie die Berechtigung CREATE DATABASE sowie SELECT-Berechtigungen für die Systemtabellen in der Masterdatenbank.

Der Access 2007-Upsizing-Assistent ist für die Zusammenarbeit mit Microsoft SQL Server 2000 und SQL Server 2005 optimiert.

Seitenanfang Seitenanfang

Verwenden des Upsizing-Assistenten

  • Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Daten verschieben auf SQL Server.

Der Upsizing-Assistent wird gestartet.



Schritt 1: Auswählen, ob das Upsizing in eine vorhandene Datenbank oder in eine neue Datenbank erfolgen soll

Geben Sie auf der ersten Seite des Assistenten an, ob das Upsizing der Access-Datenbank in eine vorhandene SQL Server-Datenbank erfolgen oder ob eine neue SQL Server-Datenbank erstellt werden soll.

AnzeigenInformationen zu ODBC-Datenquellen

Eine Datenquelle ist ein Datenspeicher, der die für den Zugriff auf die Daten erforderlichen Verbindungsinformationen enthält. Beispiele für Datenquellen sind Access, SQL Server, Oracle RDBMS, ein Tabellenblatt und eine Textdatei. Verbindungsinformationen sind beispielsweise der Serverstandort, der Datenbankname, die Anmeldekennung, das Kennwort und verschiedene ODBC-Treiberoptionen, mit denen beschrieben wird, wie die Verbindung zur Datenquelle hergestellt wird.

In der ODBC-Architektur stellt eine Anwendung (wie Access oder ein Microsoft Visual Basic-Programm) die Verbindung zum ODBC-Treiber-Manager her, der seinerseits auf einen bestimmten ODBC-Treiber (z. B. auf den Microsoft SQL-ODBC-Treiber) zugreift, um die Verbindung zu einer Datenquelle (in diesem Fall eine SQL Server-Datenbank) herzustellen. In Access verwenden Sie ODBC-Datenquellen, um auf Access-externe Datenquellen zuzugreifen, die nicht über integrierte Treiber verfügen.

Um eine Verbindung zu solchen Datenquellen herzustellen, gehen Sie folgendermaßen vor:

  • Installieren Sie auf dem Computer, auf dem sich die Datenquelle befindet, den geeigneten ODBC-Treiber.
  • Definieren Sie einen DSN (Data Source Name, Datenquellenname) mithilfe von ODBC-Datenquellenadministrator, um die Verbindungsinformationen in der Microsoft Windows-Registrierung, einer DSN-Datei oder einer Verbindungszeichenfolge in Visual Basic-Code zu speichern, um die Verbindungsinformationen direkt an den ODBC-Treiber-Manager zu übergeben. 

Maschinendatenquellen

Maschinendatenquellen speichern Verbindungsinformationen in der Windows-Registrierung eines bestimmten Computers unter einem benutzerdefinierten Namen. Sie können Maschinendatenquellen nur auf dem Computer verwenden, auf dem sie definiert sind. Es gibt zwei Arten von Maschinendatenquellen: Benutzer und System. Benutzerdatenquellen können nur vom aktuellen Benutzer verwendet werden, und sie werden nur diesem Benutzer angezeigt. Systemdatenquellen können von allen Benutzern eines Computers verwendet werden, und sie werden auch allen Benutzern des Computers sowie für die systemweiten Dienste angezeigt. Maschinendatenquellen sind besonders nützlich, wenn Sie mehr Sicherheit wünschen, da hierbei nur angemeldete Benutzer die Maschinendatenquelle anzeigen können. Außerdem können Remotebenutzer die Maschinendatenquelle nicht auf einen anderen Computer kopieren.

Dateidatenquellen

Dateidatenquellen (auch als DSN-Dateien bezeichnet) speichern Verbindungsinformationen in einer Textdatei, nicht in der Windows-Registrierung, und sie sind generell flexibler verwendbar als Maschinendatenquellen. So können Sie eine Dateidatenquelle auf jeden Computer kopieren, der über passenden ODBC-Treiber verfügt, sodass Ihre Anwendung sich auf konsistente und korrekte Informationen für Verbindungen zu allen Computern verlassen kann, die sie verwendet. Daneben besteht die Möglichkeit, die Dateidatenquelle auf einem einzigen Server unterzubringen und für mehrere Computer im Netzwerk freizugeben, sodass die Verbindungsinformationen an einer zentralen Stelle einfach gepflegt werden können.

Sie können eine Dateidatenquelle auch vor der Freigabe schützen. Eine vor der Freigabe geschützte Dateidatenquelle befindet sich auf einem einzigen Computer und zeigt auf eine Maschinendatenquelle. Sie können eine vor der Freigabe geschützte Dateidatenquelle verwenden, um von einer Dateidatenquelle aus auf eine vorhandene Maschinendatenquelle zuzugreifen.

Verbindungszeichenfolgen

In einem Modul kann eine formatierte Verbindungszeichenfolge definiert werden, die die Verbindungsinformationen enthält. Eine Verbindungszeichenfolge übergibt die Verbindungsinformationen direkt an den ODBC-Treiber-Manager, und die trägt dazu bei, die Anwendung zu vereinfachen, da der Systemadministrator oder der Benutzer hiermit keinen DSN mehr erstellen muss, bevor er die Datenbank verwenden kann.


  • Neue Datenbank erstellen    Wenn Sie diese Option auswählen und dann auf Weiter klicken, zeigt Access eine Seite an, auf der Sie Informationen zu der neuen SQL Server-Datenbank eingeben können.
    • Welchen SQL Server möchten Sie für diese Datenbank verwenden?     Geben Sie hier den Namen des Servers ein, den Sie verwenden möchten.
    • Vertrauenswürdige Verbindung verwenden     Sie können eine vertrauenswürdige Verbindung verwenden, d. h. SQL Server kann in die Sicherheit des Windows-Betriebssystems integriert werden, um eine einzige Anmeldung am Netzwerk und bei der Datenbank zu ermöglichen.
    • Anmeldekennung und Kennwort     Wenn Sie keine vertrauenswürdige Verbindung verwenden, geben Sie die Anmeldekennung und das Kennwort eines Kontos mit der Berechtigung CREATE DATABASE auf dem Server ein.
    • Welchen Namen soll Ihre neue SQL Server-Datenbank erhalten?     Geben Sie den Namen der neuen SQL Server-Datenbank ein. Access ändert den Namen, wenn er einen Konflikt mit dem Namen einer vorhandenen Datenbank verursacht, und fügt ein nummeriertes Suffix (z. B. "MeineDatenbank 1") hinzu.

Abschnittsanfang

Schritt 2: Auswählen, für welche Tabellen das Upsizing erfolgen soll

In diesem Schritt wählen Sie die Access-Tabellen aus, für die das Upsizing in die SQL Server-Datenbank erfolgen soll. Wählen Sie die Tabellen aus, für die das Upsizing durchgeführt werden soll, und verwenden Sie dann die Pfeiltasten, um diese Tabellen in die Liste Nach SQL Server exportieren zu verschieben. Alternativ können Sie auch auf eine Tabelle doppelklicken, um sie von einer Liste in die andere zu verschieben.

Die Liste Vorhandene Tabellen enthält alle verknüpften Tabellen außer den SQL Server-Tabellen, die sich bereits in einer SQL Server-Datenbank befinden. Verknüpfte Tabellen, die auf eine SQL Server-Datenbank verweisen, die für den Upsizingvorgang ausgewählt wurde, werden automatisch im Listenfeld Nach SQL Server exportieren angezeigt und können nicht entfernt werden. Tabellen, die gegenwärtig im Navigationsbereich (Navigationsbereich: Der Bereich, der angezeigt wird, wenn Sie eine Access-Datenbank oder ein Access-Projekt öffnen. Im Navigationsbereich werden die in der Datenbank enthaltenen Objekte angezeigt. Der Bereich kann angepasst werden, sodass die Objekte auf unterschiedliche Arten sortiert und gruppiert werden.) nicht angezeigt werden, werden ebenfalls ausgeschlossen, wozu auch verborgene Tabellen und Systemtabellen gehören.

 Tipp   Jede Tabelle, deren Name auf "_lokal" endet, wird aus der Liste der verfügbaren Tabellen ausgeschlossen, um zu verhindern, dass das Upsizing für Tabellen durchgeführt wird, für die dieser Vorgang bereits erfolgt ist. Wenn das Upsizing für diese Tabellen erneut erfolgen soll, müssen sie umbenannt werden, bevor der Upsizing-Assistent ausgeführt wird, indem das Suffix "_lokal" entfernt wird.

Abschnittsanfang

Schritt 3: Angeben der Attribute und Optionen, für die das Upsizing erfolgen soll

In diesem Schritt wählen Sie aus, für welche Tabellenattribute das Upsizing in die SQL Server-Datenbank erfolgen soll. Standardmäßig sind alle Attribute für das Upsizing ausgewählt.

 Hinweis   Standardmäßig konvertiert der Upsizing-Assistent Access-Feldnamen in gültige SQL Server-Feldnamen und Access-Datentypen in die entsprechenden SQL Server-Datentypen.

Welche Tabellenattribute möchten Sie einbeziehen?

In der folgenden Tabelle sind die Attribute aufgeführt, für die das Upsizing erfolgen kann, und es wird beschrieben, wie der Upsizing-Assistent das jeweilige Attribut verarbeitet:

Attribut Aktion, sofern ausgewählt
Indizes

Der Upsizing-Assistent führt ein Upsizing aller Indizes durch.

Der Upsizing-Assistent wandelt Access-Primärschlüssel in SQL Server-Indizes um und markiert diese als SQL Server-Primärschlüssel. Wenn Sie auswählen, dass die SQL Server-Tabelle, für die das Upsizing erfolgt ist, mit der Access-Datenbank verknüpft werden soll, fügt der Upsizing-Assistent dem Indexnamen auch das Präfix "aaaaa" hinzu, da Access den Index als Primärschlüssel auswählt, der sich nach alphabetischer Sortierung ganz oben in der Liste der verfügbaren Indizes befindet, und mit dem Präfix "aaaaa" wird sichergestellt, dass der passende Index ausgewählt wird.

Alle anderen Indizes behalten ihre Namen, wobei ungültige Zeichen allerdings im Bedarfsfall durch das Zeichen "_" ersetzt werden. Eindeutige und nicht eindeutige Access-Indizes werden damit zu eindeutigen und nicht eindeutigen SQL Server-Indizes.

Eine verknüpfte Tabelle muss über einen eindeutigen Index verfügen, damit sie in Access aktualisiert werden kann. Der Upsizing-Assistent kann ein Upsizing eines vorhandenen eindeutigen Index durchführen, kann jedoch keinen eindeutigen Index erstellen, wenn ein solcher nicht vorhanden ist. Wenn Sie also in der Lage sein möchten, die Daten in Ihren Tabellen nach dem Upsizing zu aktualisieren, müssen Sie jeder Access-Tabelle vor dem Upsizing einen eindeutigen Index hinzufügen.

Gültigkeits-regeln

Der Upsizing-Assistent führt ein Upsizing der folgenden Elemente als Aktualisierungs- und Einfüge trigger (Trigger: Ein spezieller Typ einer gespeicherten Prozedur, der automatisch ausgeführt wird, wenn Daten in einer angegebenen Tabelle geändert werden. Trigger werden oft erstellt, um referenzielle Integrität oder Konsistenz zwischen logisch verwandten Daten in verschiedenen Tabellen zu erzwingen.) durch:

  • Der Eigenschaften Erforderlich aller Felder
  • Von Gültigkeitsregeln für Tabellen
  • Von Gültigkeitsregeln für Datensätze
  • Von Gültigkeitsregeln für Felder

Ein Trigger ist eine Reihe von Transact-SQL-Anweisungen, die zu einer SQL Server-Tabelle gehören. Eine Tabelle kann drei Trigger aufweisen, d. h. einen für jeden der Befehle, mit denen Daten in einer Tabelle geändert werden können: UPDATE, INSERT und DELETE. Der Trigger wird automatisch ausgeführt, wenn der Befehl ausgeführt wird. Der Upsizing-Assistent verwendet Trigger anstelle von SQL Server-Regeln, um eine Gültigkeitsprüfung auf Feldebene zu erzwingen, da die SQL Server-Regeln es nicht zulassen, dass benutzerdefinierte Fehlermeldungen angezeigt werden.

Zwischen einer Gültigkeitsregel und einem Trigger besteht nicht notwendigerweise eine 1-zu-1-Beziehung. Jede Gültigkeitsregel kann Teil mehrerer Trigger werden, und jeder Trigger kann Code enthalten, mit dem die Funktionen von mehreren Gültigkeitsregeln emuliert werden.

Wenn Sie die Eigenschaft Erforderlich eines Access-Felds auf "Wahr" festlegen, kann der Benutzer keinen Datensatz einfügen, in dem das erforderliche Feld den Wert "Null" aufweist (wenn es keine Standardbindung an das Feld gibt) oder dem Feld bei der Aktualisierung des Datensatzes den Wert "Null" zuweisen. Bei erforderlichen Feldern erfolgt das Upsizing auf Felder, in denen in SQL Server der Wert Null (Null: Ein Wert, den Sie in ein Feld eingeben oder in Ausdrücken und Abfragen verwenden können, um fehlende oder unbekannte Daten anzugeben. In Visual Basic steht das Schlüsselwort Null für einen Null-Wert. Einige Felder, wie Primärschlüsselfelder, dürfen keine Null-Werte enthalten.) nicht zulässig ist.

Gültigkeitsmeldung

Die Eigenschaft Gültigkeitsmeldung der Access-Datenbank wird in die Eigenschaft Gültigkeitsmeldung des Access-Projekts umgewandelt. Auf diese Weise können im Fall einer Einschränkungsverletzung zur Laufzeit die leicht verständlichen Fehlermeldungen von Access angezeigt werden.

Standardwerte Der Upsizing-Assistent für ein Upsizing aller Standardwert-Eigenschaften auf ANSI (American National Standards Institute) (ANSI-Zeichensatz: Ein von Microsoft Windows verwendeter 8-Bit-Zeichensatz, der es Ihnen ermöglicht, mithilfe Ihrer Tastatur bis zu 256 Zeichen (0 bis 255) darzustellen. Der ASCII-Zeichensatz bildet eine Untermenge des ANSI-Zeichensatzes.)-Standardobjekte durch.
Tabellen­beziehungen

Der Upsizing-Assistent führt ein Upsizing aller Tabellenbeziehungen durch.

Hierbei können Sie entscheiden, wie das Upsizing von Tabellenbeziehungen und der referenziellen Integrität erfolgen soll, ob UPDATE-, INSERT- oder DELETE-Trigger oder DRI (Declared Referential Integrity) verwendet werden sollen. Bei DRI kommt die gleiche Methode wie bei der referenziellen Integrität von Access zum Einsatz, d. h., es werden Primärschlüsseleinschränkungen für Basistabellen (die Seite "1" einer 1:n-Beziehung) sowie Fremdschlüsseleinschränkungen für Fremdtabellen (in der Regel die Seite "n" einer 1:n-Beziehung) definiert.

  • Mit DRI     Wählen Sie Tabellenbeziehungen und Mit DRI aus, um die referenzielle Integrität mithilfe von DRI zu erzwingen. Die Spaltengültigkeitsprüfung der Access-Datenbank wird in eine SQL Server-DRI-Prüfungseinschränkung umgewandelt, und es wird eine Gültigkeitsmeldung wie in der folgenden Tabelle aufgeführt angezeigt.
Access-Datenbank­beziehung SQL Server-Fremdschlüssel Gültigkeits­meldung
"Aktualisierungs­weitergabe an verwandte Felder" ON DELETE NO ACTION ON UPDATE CASCADE "Der Datensatz kann nicht gelöscht werden, da die Tabelle <Fremdtabelle> verwandte Datensätze enthält."
"Löschweitergabe an verwandte Datensätze" ON DELETE CASCADE ON UPDATE NO ACTION "Sie können keinen Datensatz hinzufügen oder ändern, weil ein verwandter Datensatz in der Tabelle <Primärtabelle> benötigt wird."
"Aktualisierungs­weitergabe an verwandte Felder"
und "Löschweitergabe an verwandte Datensätze"
ON DELETE CASCADE ON UPDATE CASCADE Wert nicht festgelegt.
"Ohne DRI" ON DELETE NO ACTION ON UPDATE NO ACTION "Aufgrund der Beziehungs­einschränkungen zwischen den Tabellen <Primärtabelle> und <Fremdtabelle> können Sie diesen Datensatz nicht hinzufügen, ändern oder löschen."
  • Mit Trigger     Wenn Sie in Ihren Access-Tabellenbeziehungen mit Aktualisierungs­weitergabe und Löschweitergabe arbeiten und wenn Sie dieses Verhalten in den Tabellen beibehalten möchten, für die das Upsizing erfolgt ist, wählen Sie Tabellenbeziehungen und Mit Trigger aus. Auf diese Weise erfolgt das Upsizing von Aktualisierungs- oder Löschweitergaben in Form von Triggern, um die referenzielle Integrität zu erzwingen.

Zwischen einer Tabellenbeziehung und einem Trigger besteht nicht notwendigerweise eine 1:1-Beziehung. Jede Beziehung kann Teil mehrerer Trigger werden, oder jeder Trigger kann Code enthalten, mit dem die Funktionen von mehreren Regeln für die referenzielle Integrität emuliert werden. Einfügetrigger werden bei untergeordneten Tabellen und Löschtrigger bei übergeordneten Tabellen verwendet.

 Hinweis   Access setzt voraus, dass DRI das Datenbankdiagramm (Datenbankdiagramm: Eine grafische Darstellung eines beliebigen Teils eines Datenbankschemas. Hierbei kann es sich um eine vollständige oder auszugsweise Darstellung der Datenbankstruktur handeln. Die Darstellung enthält Tabellen samt Spalten sowie die Beziehungen zwischen den Tabellen.) einer SQL Server-Datenbank liest. Damit Access das Datenbankdiagramm lesen kann, während die referenzielle Integrität durch Trigger erzwungen wird, setzt der Upsizing-Assistent DRI in die Beziehungen, deaktiviert jedoch die Prüfung auf Fremdschlüsseleinschränkungen.

Welche Datenoptionen möchten Sie aufnehmen?

  • Timestamp-Feld in Tabellen einfügen?    SQL Server verwendet ein Timestamp-Feld, um anzugeben, dass ein Datensatz geändert wurde (jedoch ohne Zeitangabe), indem ein eindeutiges Wertefeld erstellt wird, das immer dann aktualisiert wird, wenn ein Datensatz aktualisiert wurde. Bei verknüpften Tabellen verwendet Access den Wert in Timestamp-Feldern, um zu ermitteln, ob ein Datensatz geändert wurde, bevor dieser aktualisiert wird. Im Allgemeinen bietet ein Timestamp-Feld ein Optimum an Leistung und Zuverlässigkeit. Ohne ein Timestamp-Feld muss SQL Server alle Felder eines Datensatzes prüfen, um eine eventuelle Änderung festzustellen, wodurch die Verarbeitungsgeschwindigkeit herabgesetzt wird.

In der folgenden Tabelle werden die Einstellungen erläutert, die in dieser Liste zur Verfügung stehen:

Einstellung Beschreibung
Ja, der Assistent soll entscheiden Wenn die ursprünglichen Access-Tabellen Gleitkommafelder (Single oder Double), Memo- (Memo-Datentyp: Ein Felddatentyp in einer Microsoft Access-Datenbank. Memo-Felder können bis zu 65.535 Zeichen enthalten.) oder OLE-Objekt (OLE-Objekt: Ein Objekt, das das OLE-Protokoll für das Object Linking and Embedding unterstützt. Ein OLE-Objekt von einem OLE-Server, z. B. ein Windows Paint-Bild oder ein Excel-Arbeitsblatt, kann mit einem Feld, Formular oder Bericht verknüpft oder darin eingebettet werden.)-Felder enthalten, erstellt der Upsizing-Assistent in den resultierenden SQL Server-Tabellen für diese Felder neue Timestamp-Felder.
Ja, immer Der Upsizing-Assistent erstellt ein Timestamp-Feld für alle Tabellen, für die ein Upsizing durchgeführt wurde, ohne Berücksichtigung der hierin enthaltenen Feldtypen. Hiermit wird die Leistung von Access-Tabellen erhöht, für die ein Upsizing erfolgt ist, die ggf. keine Memo-, OLE-Objekt- oder Gleitkommafelder, sondern sonstige Feldtypen enthalten.
Nein, nie Der Upsizing-Assistent fügt den Tabellen keine Timestamp-Felder hinzu.

 Wichtig   Bei verknüpften SQL Server-Tabellen prüft Access nicht, ob Memo- oder OLE-Objektfelder geändert wurden, da solche Felder viele Megabyte groß sein können, sodass der Vergleich zu viele Netzwerkressourcen und zu viel Zeit in Anspruch nehmen würde. Daher überschreibt Access die Änderung, wenn nur ein Text- oder Bildfeld geändert wurde und kein Timestamp-Feld vorhanden ist. Darüber hinaus kann auch der Eindruck entstehen, dass der Wert eines Gleitkommafelds geändert wurde, obwohl dies nicht der Fall ist, daher kann Access bei nicht vorhandenem Timestamp-Feld fälscherweise zu der Feststellung kommen, dass ein Datensatz geändert wurde.

  • Nur Tabellenstruktur erstellen, keine Daten    Der Upsizing-Assistent führt standardmäßig ein Upsizing aller Daten nach SQL Server durch. Wenn Sie das Kontrollkästchen Nur Tabellenstruktur erstellen, keine Daten aktivieren, erfolgt lediglich ein Upsizing der Datenstruktur.

Abschnittsanfang

Schritt 4: Auswählen, wie das Upsizing der Anwendung erfolgen soll

Auf der nächsten Seite des Assistenten können Sie eine von drei unterschiedlichen Methoden zum Upsizing Ihrer Access-Datenbankanwendung auswählen. Wählen Sie unter Welche Anwendungsänderungen möchten Sie durchführen? eine der folgenden Optionen aus:

Der Upsizing-Assistent erstellt die Access-Projektdatei und führt dann ein Upsizing aller Datenbankobjekte aus der Access-Datenbank in das Access-Projekt durch. Wenn Sie das Kennwort und die Benutzerkennung nicht speichern, zeigt Access beim ersten Öffnen des Access-Projekts das Dialogfeld Datenverknüpfungseigenschaften an, in dem Sie die Verbindung zu einer SQL Server-Datenbank herstellen können.

  • SQL Server-Tabellen in die bestehende Anwendung einbinden    Wenn Sie diese Option auswählen, ändert der Upsizing-Assistent die Access-Datenbank so, dass in Abfragen, Formularen, Berichten und auf Datenzugriffsseiten die Daten in der neuen SQL Server-Datenbank anstelle der Daten in der Access-Datenbank verwendet werden. Der Upsizing-Assistent weist den Access-Tabellen, für die das Upsizing durchgeführt wird, das Suffix "_lokal" zu. Wenn Sie beispielsweise das Upsizing für eine Tabelle mit Namen "Mitarbeiter" durchführen, wird diese Tabelle in Ihrer Access-Datenbank in "Mitarbeiter_lokal" umbenannt. Anschließend erstellt der Upsizing-Assistent eine verknüpfte SQL Server-Tabelle mit dem Namen "Mitarbeiter".

 Hinweis   Wenn der Upsizingvorgang abgeschlossen ist, werden die Tabellen, denen das Suffix "_lokal" zugewiesen wurde, nicht mehr verwendet. Es empfiehlt sich jedoch, die lokalen Tabellen zu behalten, bis Sie geprüft haben, ob der Upsizingvorgang erfolgreich war. Sie können die lokalen Tabellen zu einem späteren Zeitpunkt löschen, um die Größe der Access-Datenbank zu reduzieren. Erstellen Sie vor dem Löschen irgendwelcher Tabellen unbedingt eine Datensicherung.

Abfragen, Formulare, Berichte und Datenzugriffsseiten, die auf der ursprünglichen Tabelle "Mitarbeiter" basieren, verwenden nun die verknüpfte SQL Server-Tabelle "Mitarbeiter". Viele der Feldeigenschaften der lokalen Tabelle werden von der neuen lokalen Tabelle übernommen, wie Beschreibung, Beschriftung, Format, Eingabeformat und Dezimalstellenanzeige.

  • Keine Anwendungsänderungen    Wählen Sie diese Option aus, wenn Sie Ihre Daten nur in die SQL Server-Datenbank kopieren möchten und an der vorhandenen Access-Datenbankanwendung keine weiteren Änderungen vorgenommen werden sollen.

Kennwort und Benutzer-ID speichern    Standardmäßig erstellt der Upsizing-Assistent verknüpfte Tabellen in der vorhandenen Anwendung, oder er erstellt ein Access-Projekt, ohne dass der Benutzername und das Kennwort gespeichert werden. Dies bedeutet, dass die Benutzer bei jeder Anmeldung bei einer SQL Server-Datenbank aufgefordert werden, Benutzername und Kennwort anzugeben.

Wenn Sie die Option Kennwort und Benutzer-ID speichern auswählen, können Benutzer ohne Anmeldung die Verbindung zu einer SQL Server-Datenbank herstellen. Wenn Sie die Option Eine neue Access-Client/Server-Anwendung erstellen auswählen, werden der Benutzername und das Kennwort in der OLE DB-Verbindungszeichenfolge des Access-Projekts gespeichert.

 Hinweis   Diese Option entfällt in Verbindung mit der Option Keine Anwendungsänderungen, wenn eine verknüpfte SQL Server-Tabelle mit einer MSysConf-Tabelle konfiguriert ist, um das Speichern von Kennwörtern zurückzuweisen.

Bericht des Upsizing-Assistenten

Wenn Sie auf Fertig stellen klicken, erstellt der Upsizing-Assistent einen Bericht, der eine detaillierte Beschreibung aller erstellten Objekte enthält und in dem alle Fehler aufgeführt sind, die während des Prozesses aufgetreten sind. Der Upsizing-Assistent zeigt den Bericht in der Seitenansicht an, sodass Sie ihn drucken oder als XPS- oder PDF-Datei speichern können. Der Bericht wird nicht als Access-Objekt gespeichert, wenn Sie die Seitenansicht schließen.

Der Bericht des Upsizing-Assistenten enthält Informationen über die folgenden Elemente:

Abschnittsanfang

Seitenanfang Seitenanfang

Wie ein Upsizing von Datenbankobjekten erfolgt

Das Upsizing wird für die folgenden Daten und Datenbankobjekte durchgeführt:

  • Daten und Datentypen    Alle Datentypen in der Access-Datenbank werden in ihre SQL Server-Entsprechung umgewandelt. Der Assistent wandelt Access-Datenbanktext in Unicode um, indem allen Zeichenfolgenwerten der Unicode-Textbezeichner und allen Datentypen das Unicode-Präfix "n" hinzugefügt wird.
  • Abfragen    
    • Auswahlabfragen ohne ORDER BY-Klausel oder Parameter werden in Sichten umgewandelt.
    • Aktionsabfragen werden in Aktionsabfragen mit gespeicherten Prozeduren umgewandelt. Access fügt nach dem Parameterdeklarationscode SET NOCOUNT ON hinzu, damit sichergestellt ist, dass die gespeicherte Prozedur ausgeführt werden kann.
    • Auswahlabfragen, die sich nur auf Tabellen beziehen (so genannte Basisabfragen) und in denen entweder Parameter oder eine ORDER BY-Klausel verwendet werden, werden in benutzerdefinierte Funktionen umgewandelt. Falls erforderlich, wird einer Abfrage, die eine ORDER BY-Klausel enthält, die Klausel TOP 100 PERCENT hinzugefügt.
    • Parameterabfragen, in denen benannte Parameter verwendet werden, behalten den ursprünglichen Textnamen, der in der Access-Datenbank verwendet wurde, und werden entweder in gespeicherte Prozeduren oder in benutzerdefinierte Inlinefunktionen umgewandelt.

 Hinweis   Möglicherweise möchten Sie Abfragen, für die das Upsizing nicht durchgeführt werden konnte, wie SQL-Pass-Through-Abfragen (Pass-Through-Abfrage: Eine SQL-spezifische Abfrage, mit der Sie Befehle direkt an einen ODBC-Datenbankserver senden. Bei Verwendung von Pass-Through-Abfragen arbeiten Sie direkt mit den Tabellen auf dem Server, anstatt mit den vom Access-Datenbankmodul verarbeiteten Daten.), Datendefinitionsabfragen (Datendefinitionsabfrage: Eine SQL-spezifische Abfrage, die eine Datenbanktabelle erstellen, verändern oder löschen und den Index in einer Datenbank erstellen oder löschen kann. ANSI definiert diese als DDL-Abfragen und verwendet die Token CREATE, DROP und ALTER.) und Kreuztabellenabfragen (Kreuztabellenabfrage: Eine Abfrage, die eine Summe, einen Mittelwert, eine Anzahl oder ein anderes Gesamtergebnis für eine Gruppe von Datensätzen berechnet und das Ergebnis dann anhand zweier Informationsarten gruppiert: eine am linken Rand des Datenblattes von oben nach unten, die andere entlang des oberen Randes.) manuell umwandeln. Gegebenenfalls müssen Sie auch ein manuelles Upsizing von Abfragen durchführen, die zu tief geschachtelt waren.

  • Formulare, Berichte und Steuerelemente    SQL-Anweisungen in RecordSource-, ControlsSource- und RowSource-Eigenschaften von Formularen, Berichten oder Steuerelementen werden beibehalten und nicht in gespeicherte Prozeduren oder benutzerdefinierte Funktionen umgewandelt.
  • Start-Eigenschaften    Der Upsizing-Assistent führt ein Upsizing der folgenden Start-Eigenschaften durch:

StartUpShowDBWindow
StartUpShowStatusBar
AllowShortcutMenus
AllowFullMenus
AllowBuiltInToolbars
AllowToolbarChanges
AllowSpecialKeys
UseAppIconForFrmRpt
AppIcon
AppTitle
StartUpForm
StartUpMenuBar
StartupShortcutMenuBar

Seitenanfang Seitenanfang

 
 
Zutreffend für:
Access 2007