Hintergrund
Sie können den Microsoft Access Upsizing Wizard (von Microsoft geliefert) verwenden, um Access Tabellen in eine Microsoft SQL Server Datenbank zu exportieren. Während dieses Vorgangs inspiziert der Upsizing Wizard die Feldnamen um sicher zu stellen, das diese gültige SQL Server Feldnamen sind.
In SQL Server Feldnamen sind nur die folgenden Zeichen zulässig:
- klein geschriebene Buchstaben (a-z)
- Großbuchstaben (A-Z)
- Dezimalziffern (0-9)
- Unterstrich (_)
- Dollar Zeichen ($)
- Pfund Zeichen (£)
Wenn der Upsizing Wizard einen Feldnamen entdeckt, der ungültige Zeichen enthält, führt er folgende Schritte aus:
- Beim Erzeugen der Servertabelle werden alle ungültigen Zeichen durch Unterstriche ersetzt.
- Die eingebundene Tabelle wird um das Suffix "_remote" erweitert.
- Es wird eine Aliasabfrage mit dem ursprünglichen Tabellennamen erzeugt, sodaß Formulare, Berichte, Makros, Module und andere Abfragen ordnungsgemäß mit der neuen Servertabelle arbeiten.
Problem
Die Aliasabfrage bewirkt keinen nennenswerten Performanceverlust, der Aliasansatz birgt aber dennoch Nachteile:
- Die Anzahl der Datenbankobjekte steigt.
- Mehrere Namen werden für die selben Felder an verschiedenen Stellen verwendet.
Diese Faktoren erhöhen die Kosten und die Komplexität der Applikationspflege.
Lösung
Sie können SPEED Ferret verwenden, um eine Liste ungültiger Feldnamen in Ihrer Datenbank zu generieren. Dann können Sie mit SPEED Ferret diese ungültigen Bezeichnungen global ersetzen, bevor Sie Ihre Tabellen exportieren.
- Öffnen Sie Ihre Datenbank und starten Sie SPED Ferret
- Geben Sie den folgenden Suchtext im Feld "Find what:" ein: *[!A-Za-z0-9_$#]*
- Im Feld "Match" selektieren Sie "Pattern (Like)"
- Klicken Sie "Search Selected Objects Only" und dann die Checkbox für Tabellen an.
- Betätigen Sie die Schaltfläche "Preview".
- Nachdem die Suchergebnisse angezeigt werden, klicken sie auf den Button "Sort by Property"
- Selektieren und Löschen Sie alle Referenzen die nicht in Beziehung zur Eigenschaft "Name" stehen.
- Drucken Sie die verbleibenden Referenzen zur Dokumentation aus.
- Verwenden Sie SPEED Ferret um global jeden ungültigen Feldnamen mit einem neuen Feldnamen Ihrer Wahl zu ersetzen.
Tip
Um eine Gruppe von Referenzen zu löschen, klicken Sie auf den Datensatzmarkierer der ersten Referenz und klicken Sie dann bei gedrückter Shift-Taste auf die letzte Referenz der Gruppe. Wählen Sie dann "Delete" aus dem Edit-Menü oder drücken Sie ENTF.