Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

Diskutiere und helfe bei Schlüsselverletzung bei Anfügeabfrage an leere Tabelle im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo Zusammen Ich verschob die Tabellen des BE einer DB von Access 365 nach SQL Server und testete anschliessend ob alle Zugriffe richtig... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Reiner Berger, 4. Juni 2020.

  1. Schlüsselverletzung bei Anfügeabfrage an leere Tabelle


    Hallo Zusammen


    Ich verschob die Tabellen des BE einer DB von Access 365 nach SQL Server und testete anschliessend ob alle Zugriffe richtig funktionieren. Logischer Weise entsprechen nun die Daten nicht mehr der DB da mit dem Original auf Access in dieser Zeit weiter gearbeitet wurde.


    Nun bin ich dabei die Verschiebung der aktiven Daten von Access auf SQL Server vorzubereiten und will das in zwei Schritten in Access 365 durchführen:

    1. Alle Tabellen in SQL Server leeren.

    2. Die Daten aus den Access-Tabellen an die SQL Server-Tabellen anfügen.

    Diesen Weg wähle ich wegen der dokumentierten Tests und damit ich den Uebertrag der Datensätze automatisiert durchführen kann.


    Der SQL-Code für die Anfüge-Abfrage in Access 365 ist im Prinzip so aufgebaut:

    INSERT INTO TB_Bestellungen SELECT TB_Bestellungen1.* FROM TB_Bestellungen1;

    Mein Problem:

    Mit dieser Anfüge-Abfrage bekomme ich die Fehlermeldung dass keine = 0 Datensätze wegen Schlüsselverletzungen angefügt wurden.

    Ersetze ich in der Anfüge-Abfrage das .* durch alle Felder wird die Abfrage korrekt ausgeführt und alle Datensätze sind in der SQL-Tabelle vorhanden.

    Für mich würde das bedeuten dass ich knapp 100 individuelle Anfüge-Abfragen erstellen und testen müsste.


    Kennt jemand dieses Verhalten und hat eine Lösung dazu ?


    Bin für jede Hilfe dankbar.


    Herzliche Grüsse

    Reiner Berger
     
  2. Reiner Berger Win User

    Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

    Hallo Peter

    Qualifizierung ist die dokumentierte Beweisführung dass die Aenderungen oder Anpassungen oder ….. zum vorgegebenen Resultat führen.

    Auf mein System bezogen bedeutet dies:

    Wenn ich die Tabellen lösche und neu übertrage muss ich die Struktur jeder Tabelle wieder vollständig prüfen, prüfen ob die Berechtigungen korrekt gesetzt sind und die Datenzugriffe zum erwarteten Resultat führen = mehrere hundert Seiten Papier.

    Wenn ich nur die Test-Datensätze lösche und die DS des Produktiv-Systems anfüge muss ich nur die übertragenen Daten pro Tabelle stichprobenartig prüfen und das kann ich automatisieren und gleichzeitig in einer eigenen Tabelle dokumentieren.

    Mit Deinen oben gestellten Fragen hast Du mich aber auf den für mich richtigen Weg gebracht.

    Ich erstellte eine neue Access-DB in die ich die Tabellen des alten Produktiv-Systems und der neuen SQL-Server-DB verlinkte.

    Nun bin ich am erstellen der knapp 100 Anfüge-Abfragen. Die Namen dieser Abfragen speichere ich zusammen mit den Feldnamen für das sortieren der zugehörigen Tabellen und den Feldnamen die die zu vergleichenden Daten enthalten.

    All diese Daten speichere ich, zusammen mit dem Resultat des Vergleichs (o.k resp. Fehler) in einer separaten Tabelle die ich dann bei Bedarf für die Behörden auch ausdrucken könnte.

    Also Besten Dank dass Du mich zum überdenken meines ursprünglichen Ansatzes gebracht hast.

    Herzliche Grüsse

    Reiner
  3. Peter Doering Win User

    Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

    Hallo,

    Die Syntax INSERT INTO Tab1 SELECT * FROM Tab2 funktioniert nur, wenn die Feldlisten beider Tabellen übereinstimmen. Man kann sich in solchen Fällen mit Excel helfen, wo man das Schema hinkopieren und danach die SQL-Statements per Formel zusammensetzen kann.

    Was verstehst du unter "Qualifizierung"?

    Da du SSMA verwendet hast, kannst du die Migration jederzeit komplett wiederholen und dabei die Zieldatenbank überschreiben. Solltest du Änderungen am Schema oder an Daten auf dem Ziel-Server vorgenommen haben, solltest du diese in ein Script aufnehmen und
    dieses nach der 2. Migration nochmal ausführen.

    Gruss - Peter
  4. Peter Doering Win User

    Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

    Hallo,

    Zunächst die Frage, wie du das DB-Schema von Access nach SQL Server migriert hast. Solltest du SSMA verwendet haben, hast du in den Zieltabellen, in denen SSMA es für nötig hielt, ein Feld namens "SSMA_Timestamp" vom Typ TimeStamp. Dieses Feld würde in Access
    fehlen und damit wäre die Feldliste beim Insert zwingend anzugeben.

    Ansonsten bestehen weitere Möglichkeiten:

    • Haben die Felder am SQL Server die gleiche Reihenfolge wie in Access?
    • Normalerweise ist die Fehlermeldung länger und zählt nicht nur Schlüsselverletzungen, sondern auch andere Felder auf. Gab es da noch was?

    Was hält dich davon ab, die Migration vom ersten Schritt an zu wiederholen, einschl. Erstellung des Schemas?

    Gruss - Peter
  5. Reiner Berger Win User

    Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

    Hallo Peter

    Besten Dank für Deinen Vorschlag und den Code. Ich werde diese Lösung an einem anderen Ort
    auch einsetzen.

    Bei diesem Problem, dem Uebertragen der Daten von Access zu SQL Server, bleibe ich bei den Abfragen da ich sonst auch noch dokumentiert prüfen muss ob alle Felder korrekt ausgelesen wurden etc. (Stöhn).

    Besten Dank für Deine, wie schon mehrmals, sehr kompetente Unterstützung.

    Gruss Reiner
  6. Reiner Berger Win User

    Schlüsselverletzung bei Anfügeabfrage an leere Tabelle

    Hallo Peter

    Besten Dank für Deine Antwort.

    Also ich habe in jeder Tabelle ein Feld SSMA_Timestamp d.h. ich müsste für alle Tabellen eine Abfrage mit Feldliste erstellen (stöhn, stöhn).

    Was meinst Du mit "die Migration vom ersten Schritt an zu wiederholen" ?

    Tabellen in SQL server löschen und nochmals von Access neu übertragen ?

    Das würde bez. Qualifizierung quasi zurück zum Start bedeuten und das ist dann definitiv ein mehrfaches an Aufwand als die knapp 100 Anfügeabfragen zu erstellen.

    Ich erstelle und teste einmal 5 Stück und dann weiss ich wie gross der Aufwand tatsächlich ist.

    Herzliche Grüsse

    Reiner
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Schlüsselverletzung bei Anfügeabfrage an leere Tabelle - Microsoft Office

Die Seite wird geladen...

Schlüsselverletzung bei Anfügeabfrage an leere Tabelle - Similar Threads - Schlüsselverletzung Anfügeabfrage leere

Forum Datum

Spamordner leeren

Spamordner leeren: Hallo,ich habe 2 PCs, auf denen Outlook 2019 installiert ist. Bei dem einen kann ich beim Spamordner mit Rechtsklick die Option "Ordner leeren" wählen. Die Spams werden gelöscht, ohne in den...
Outlook.com 3. Februar 2022

Posteingang leer

Posteingang leer: Mein Posteingang ist leer. Ich habe gestern in meinem Posteingang mails gelöscht, die sind noch in dem Ordner "gelöschte Elemente" aber die mails, die ich NICHT gelöscht habe sind weder im...
Outlook.com 30. August 2020

Erstellung der Tabellen, die sich in ihrer Nummerierungsbeschriftung auf andere Tabelle...

Erstellung der Tabellen, die sich in ihrer Nummerierungsbeschriftung auf andere Tabelle...: Guten Tag, ich möchte gerne eine Tabelle bei ihrer Nummerierung beziehen. Gemeint ist Folgendes: Erste Tabelle: Tabelle 2 zweite Tabelle: Tabelle 2.1 dritte Tabelle:...
Microsoft Office 19. April 2019

Autokorrektur Tabelle nach Update leer

Autokorrektur Tabelle nach Update leer: Soeben hat sich Microsoft Office 2016 für Mac ein automatisches Update genehmigt. Hiernach war die Tabelle mit den Autokorrekturen leer. Lässt sich diese wiederherstellen? Sind die Einträge...
Microsoft Office 15. August 2018

Access 2010 Anfügeabfrage schneidet Memofeld nach 255 Zeichen ab

Access 2010 Anfügeabfrage schneidet Memofeld nach 255 Zeichen ab: Ich möchte aus einer Access 2010-Datenbank eine Anfügeabfrage in eine andere Access 2010-Datenbank durchführen. Dabei habe ich mit Memofeldern ein Problem. Es werden in die andere Datenbank in die...
Microsoft Office 20. September 2017

Leere Zeilen aus Access Tabelle löschen, wie funktioniert das

Leere Zeilen aus Access Tabelle löschen, wie funktioniert das: Wenn ich die Tabelle nach Excel exportiere und über die Filterung die Leeren Zellen herrausfiltere, habe ich ja aus anderen Spalten die Werte mit weggefiltert, also so geht es nicht. Und wie man...
Microsoft Office 14. August 2017

Leere Spalten von Excel Tabelle nicht anzeigen in OneNote

Leere Spalten von Excel Tabelle nicht anzeigen in OneNote: Hallo allerseits, Ich füge öfter mal Excel Tabellen in OneNote ein, sodass diese direkt sichtbar sind. Also beispielsweise eine Excel Tabelle per Drag und Drop in OneNote ziehen und auf...
Microsoft Office 7. Mai 2017
Schlüsselverletzung bei Anfügeabfrage an leere Tabelle solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.