Info zum Act! Fehler: “Cannot insert duplicate key row”

Mit dem “Cannot insert duplicate key row” Fehler habe ich in letzter Zeit häufig zu tun. Grundsätzlich hat dieser Fehler mit einer Fehl Funktion im SQL zu tun und tritt meist bei der SQL Version 2008 R2 auf. Welcher mit den meisten Vorgänger Versionen vor Act! v 17 verwendet wird und von Microsoft nicht mehr „Supported“ wird.

Hier finden sie eine Übersicht über den “Lifetimecricel” von SQL 2008 R2:

https://support.microsoft.com/de-de/lifecycle?p1=14917

Der Fehler tritt meist auf wenn man versucht ein Backup einer Act Datenbank zu tätigen aber auch bei der Reparatur, Erstellung oder Synchronisation einer Act Remote Datenbank.

ActFehler

Hierfür gibt es mehrere Lösung Optionen.

Lösungsansätze für den Act Fehler

Option 1:

Laden sie sich den “DBFixer” herunter. Dieser wird ein Update ihres SQL 2008R2 SP 1 durchführen und jeden Fehler versuchen zu beheben. Je nach Leistungsstärke ihres PCs, Größe der Datenbank und Anzahl der Fehler kann dies längere Zeit in Anspruch nehmen. Nach dem Durchlaufen des DBFixer sollten sie den “duplicate row” Fehler nicht mehr erhlaten.

Anmerkung: Der “DBFixer” funktioniert nur mit Act! Version 2013 und Höher.

Option 2:

Als eine Temporäre Lösung des Problems und falls Option 1 nicht helfen sollte oder sie eilig haben können sie auch die “BackupFix.bat” herunterladen und ausführen. Dies ist wie gesagt eine Temporäre Lösung und muss eventuell erneut ausgeführt werden wenn der “duplicate row” Fehler erneut auftritt.

Hier gibt es jeweils eine für die Express oder Standard Version von SQL 2008 R2.

Für SQL 2008 R2 Express: SQL2008R2_Express_BackupFix.bat

Für SQL 2008 R2 Standard: SQL2008R2_Standard_BackupFix.bat

Falls sie nicht wissen welche Version sie Installiert haben finden sie hier Hilfe wie sie dies herausfinden können.

Wichtig für Nutzer einer Act Remote Datenbank:

Sollten sie diesen Fehler erhalten wenn sie versuchen eine Remote Datenbank zu synchronisieren, müssen sie die .bat auf allen Maschinen mit einer Remote Datenbank und auch auf dem Server mit der Hauptdatenbank. Während dieses Vorgangs sollte kein User versuchen zu synchronisieren bis der Vorgang abgeschlossen ist.

Schritte um die .bat downloaden und Auszuführen:

  1. Gehen sie sicher dass sie als Administrator Angemeldet sind.
  2. Prüfen sie ob ihr SQL Server (ACT7) Dienst auch läuft. Wie das geht finden sie HIER.
  3. Bitte Speicher sie die .bat auf dem Gewünschten Verzeichnis
  4. Schließen sie Act!
  5. Nun führen sie die .bat bitte als Administrator aus, also Rechtsklick auf die Datei und hier “Als Administrator ausführen“.
  6. Nun sollten sie ein Fenster wie das in der unteren Abbildung erhalten.

Hier ist zum einen eine Liste mit den gefunden Datenbanken nun wählen sie aus der Liste die betroffene Datenbank aus und geben diese ein wie in der Abbildung “….” und drücken Enter.
Actbatdatei

  1. Wiederholen sie bitte Schritt 5. und 6. solange bis bei “rows affected” eine 0 steht.
  1. Nun Öffnen sie Act! wieder und testen sie die beschädigte Funktion noch einmal.

Wichtig: Sollten sie bei der .bat nach der Ausführung eine Fehlermeldung kriegen folgen sie bitte den unten genannten Informationen.

Informationen:

Falls die Ausführung der .bat nicht so funktioniert wie oben beschrieben probieren sie bitte folgende Optionen:

Option 1.: Deaktivieren der User Account Control (UAC)

Dazu gehen sie wie folgt vor:

  1. Gehen sie auf Systemsteuerungen
  2. Durchsuchen sie diese nach UAC

3 Ziehen sie den Regler auf “Nie benachrichtigen” und bestätigen sie.

Hier noch eine Detaillierte Anleitung.

 

Optionen 2.: Datei in ein anderes Verzeichnis verschieben

  1. Kopieren sie die .bat die sie vorher Heruntergeladen haben.
  2. Öffnen sie den Windows Explorer und gehen sie in eines der folgenden Verzeichnisse:

SQL Server (64-bit Version) auf einem 64 Bit Betriebssystem:

C:\Programme\Microsoft SQL Server\100\Tools\Binn

SQL Server (32-bit Version) auf einem 64-bit Betriebssystem:

C:\Programme (x86)\Microsoft SQL Server\100\Tools\Binn

SQL Server (32-bit Version) auf einem 32-bit Betriebssystem:

C:\Programme\Microsoft SQL Server\100\Tools\Binn

  1. Kopieren sie die .bat bitte in diesen “Binn” Ordner
  2. Versuchen sie diese nun bitte erneut auszuführen.

 

Option 3: Der SQL Server Browser ist nicht gestartet.

  1. Öffnen sie hierzu auch wieder die Windows Dienste wie bereits oben in Option 2, Schritt 2 beschrieben.
  2. Suchen sie den SQL Server Browser
  3. Tätigen sie einen Rechtsklick auf diesen und drücken Starten.
  4. Versuchen sie .bat noch einmal auszuführen.

 

Option 4: Microsoft SQL Server 2008 Feature Pack

Falls keiner der oberen Schritte geholfen hat und sie auch weiterhin einen Fehler bekommen laden sie sich bitte das “Microsoft SQL Server 2008 R2 Command Line Utilities” Packet herunter. Nachdem sie das getan haben versuchen sie bitte erneut die .bat auszuführen.

 

Notiz:

Falls keine der beiden .bats bei ihnen ausgeführt werden kann und sie auch weiterhin den “Cannot insert duplicate key row” Fehler in Act erhalten, wenden sie sich bitte an unseren Technischen Support: support@crmaddon.com