Fehler bei der MS-Access-Datenbank

1623
Dave Long

Ich arbeite daran, eine MS-Access-Datenbank von Access 2010 auf MS-SQL 2008 (10.0.1600) zu erweitern. Beim Ausführen des Upsizing-Assistenten werden alle Tabellen außer einem verschoben.

Die Tabelle, die nicht verschoben wird, hat ~ 18.000 Datensätze und viele Spaltennamen enthalten Leerzeichen. Ich bin nur unsicher, wie ich herausfinden kann, warum der Tisch nicht bewegt wird. Der Fehler, den ich erhalte, sagt mir nur, dass "Tab übersprungen wurde oder der Export fehlgeschlagen ist". Ich weiß nicht, wie ich Zugang dazu bekomme, um mir einen nützlicheren Fehler zu liefern.

Ich habe bisher bestätigt, dass der Fehler nicht verursacht wird durch:

  • Ungültige Datentypen (Ja / Nein, Datum usw.)
  • Leerzeichen in Spaltennamen
1

4 Antworten auf die Frage

1
Bryan Varney

Ich bin auf ein ähnliches Problem gestoßen. Es stellte sich heraus, dass ich ein Feld hatte, das als Identitätsfeld auf automatische Erhöhung gesetzt wurde. Die Tabellenstruktur wurde in SQL Server übernommen, es wurden jedoch keine Daten importiert. Ich hatte noch keine Chance, so weit zu gehen, aber mein Plan ist, die Identitätseigenschaft auf "NO" zu setzen. Nachdem Sie die Datenbank erfolgreich aufgeteilt haben, setzen Sie die Eigenschaft wieder auf "YES". Dies ist wahrscheinlich nur eine von vielen Möglichkeiten.

0
Randolf Richardson

Haben Ihre anderen Tabellen Leerzeichen in ihren Spaltennamen? Wenn nicht, können Sie versuchen, die Spalten umzubenennen, indem Sie die Leerzeichen in Unterstriche ("_") umwandeln und dann die SQL-Befehle "ALTER TABLE" auf der MS-SQL-Serverkonsole verwenden, um die Spalten wieder zu ändern (sofern unterstützt).

Die Verwendung von Leerzeichen in den Spaltennamen wird jedoch nicht empfohlen, da dies zu allen möglichen Komplikationen führen kann (insbesondere beim Zitieren von Teilen von SQL-Befehlen und zum Verhindern von Injektionsangriffen usw.) und zu Problemen, insbesondere wenn mehr Entwickler beteiligt sind. Ich empfehle, auf Unterstriche umzusteigen und Ihren Code entsprechend zu aktualisieren.

Ich ging davon aus, dass das Thema Unterstriche war. Gibt es eine schnelle Möglichkeit, etwa 100 Spaltennamen zu ändern? Etwas Regex, der nach Leerzeichen sucht und durch Unterstriche ersetzt. Dave Long vor 13 Jahren 0
In MS-Access? Ich bin mir dessen nicht bewusst, aber ich habe MS-Access seit über einem Jahrzehnt nicht mehr verwendet, daher ist es möglich, dass es eine Option gibt. Ein regulärer Ausdruck, der Leerzeichen in Unterstriche ändert, könnte in etwa wie folgt aussehen: / / _ / Randolf Richardson vor 13 Jahren 0
Räume waren nicht das Problem. Veränderte alles zu Unterstrichen und ich bekomme immer noch einen vagen Fehler. Dave Long vor 13 Jahren 0
Nun, zumindest hast du das ausgeschlossen. Ich habe die maximal zulässige Anzahl von Spalten eingecheckt, und MS-SQL scheint ein Limit zu haben, das viel höher als 100 ist. Das ist wahrscheinlich auch nicht der Fall. = ( Randolf Richardson vor 13 Jahren 0
Verwenden Sie in den Spaltennamen Sonderzeichen? Sie sollten alle mit einem Buchstaben oder Unterstrich beginnen und nur Buchstaben, Ziffern und / oder Unterstriche enthalten. Wenn Sie andere Charaktere haben, könnte dies ein Problem sein. Randolf Richardson vor 13 Jahren 0
Nee. Keine Zahlen oder Sonderzeichen. Dave Long vor 13 Jahren 0
Gibt es wirklich lange Spaltennamen, die für MS-SQL möglicherweise zu lang sind? Wie wäre es, einen CREATE TABLE-Befehl mit allen Spalten zu generieren und zu überprüfen, ob Sie ihn manuell von einer SQL-Konsolenaufforderung aus ausführen können? Wenn die Tabelle nicht auf diese Weise erstellt werden kann, kann die SQL-Standardfehlerantwort möglicherweise hilfreiche Hinweise geben. Randolf Richardson vor 13 Jahren 0
Die Tabelle wird anscheinend erstellt, aber es werden keine Daten migriert. Ich frage mich, ob es einen beschädigten Datensatz gibt. Ich habe irgendwo gelesen, dass Sie die sichere Verbindungseinstellung für große Datenmengen verwenden müssen. Ich versuche das jetzt. Dave Long vor 13 Jahren 0
Wenn die Daten nicht rechtzeitig vor der Zeit zitiert werden, ist das von Ihnen verwendete Konvertierungstool fehlerhaft. Wenn zum Beispiel ein Apostroph in einer Spalte in einem Ihrer Datensätze enthalten ist, muss er korrekt in Anführungszeichen gesetzt werden. Andernfalls erhalten Sie einen Syntaxfehler von SQL. Randolf Richardson vor 13 Jahren 0
0
john

for grins (sollte schnell zur Fehlerbehebung / Sanitätsprüfung gehen): Führen Sie eine Tabellenerstellungsabfrage aus, die alle Felder enthält, aber nur sehr kurze Namen in den Ausgabefeldern (z. B. fname: [User First Name]) kurz ein Wort. Sie haben dann eine doppelte Tabelle und können sich mit Datentyp-Updates usw. herumschlagen, wenn Sie die Tabelle ändern und versuchen, sie zu vergrößern

Ich hoffe, dass jemand mit der wirklichen technischen Begrenzung einlädt, in die Sie hineinlaufen, aber wenn ich auf dieses Zeug stoße, finde ich, dass es am besten ist, wirklich grundlegende Strukturen zu finden und sich auf das zu konzentrieren, was ich tun möchte - kleine Schritte, eine Änderung bei Eine Zeit - Ihr Recht, die Richtigkeit der Fehlermeldungen in Frage zu stellen - Ich habe solche irreführenden Meldungen von SQL erhalten und gezielt darauf zugegriffen - nicht nur vage, sondern eindeutig irreführend, falsch, dass entweder die Fehlermeldung und das Problem so häufig und spezifisch sind Die Antwort ist überall auf den ersten 5 Seiten der Google-Ergebnisse. ODER es ist so schlimm, dass ich mich einfach mit den Grundlagen der nackten Knochen beschäftige und die komplexe Sache, die ich eigentlich hinter mir habe, durchläuft

0
David W. Fenton

Der Upsizing-Assistent, der mit Access geliefert wird, befindet sich immer hinter der Kurve, da er nur ältere Versionen von SQL Server verarbeiten kann.

Das richtige Tool für Upsizing ist der SQL Server-Migrationsassistent für Access. Es ist viel flexibler und klüger, was es kann. Es wird auch aktualisiert, um die neueste Version von SQL Server anzuzeigen.

Mit dieser Funktion können Sie eine Vorschau der Funktionsweise des Upsizing-Vorgangs anzeigen und gegebenenfalls vorhandene Probleme beheben. Ich habe festgestellt, dass dies nicht möglich ist, bestimmte Arten von Validierungsregeln auf Feldebene richtig zu interpretieren. Ansonsten ist es gut, Probleme zu kennzeichnen und genau zu identifizieren, was geändert werden muss.

Danke David. Ich kann den Access-Upsizing-Assistenten nur mit früheren Versionen von SQL Server verstehen, aber für Access 2010 ist die Verwendung von SQL Server 2008 aus meiner Sicht etwas unglaublich. Dave Long vor 13 Jahren 0
R2 kam nach A2010 heraus, denke ich. Oder vielleicht waren es nur ein paar Monate anders, aber das Hauptproblem war, dass sie sich zur gleichen Zeit in der Entwicklung befanden und es vielleicht nicht in den Zeitplan passt. SSMA ist einfach viel vielseitiger und flexibler als der Upsizing-Assistent, hauptsächlich, weil Sie den Prozess testen können, um festzustellen, was nicht ordnungsgemäß funktioniert. So können Sie Änderungen an Ihrer Access-Datenbank (und den darin enthaltenen Daten) vornehmen. um die Probleme zu vermeiden. David W. Fenton vor 13 Jahren 0