Neu Primary Key Einschränkung

dampfer

Neues Mitglied
2. Oktober 2021
4
0
Hallo zusammen, was soll mir der Fehler wohl sagen?

Habe eine frische Datenbank in JTL-Wawi 1.5.49.2 angelegt und wollte Shopware 5 verbinden. Verbindung ist ok, nach Bestätigung der Konfiguration kommt dieser Fehler.

Freue mich über sinnvolle Antworten :)

Code:
Unbehandelte Ausnahme #1EC781A8BC575E3D vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Verletzung der PRIMARY KEY-Einschränkung "PK_tMassEinheitSprache". Ein doppelter Schlüssel kann in das dbo.tMassEinheitSprache-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (22, 1).
Die Anweisung wurde beendet.
   bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   bei JTL.Database.DbCommandHelpers.ExecuteNonQuery(IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.DbConnectionExtensions.<>c__DisplayClass2_0.<ExecuteNonQuery>b__0()
   bei JTL.Database.DbConnectionHelpers.Execute[T](IDbConnection connection, Func`1 func, Boolean keepAlive)
   bei JTL.Database.DbConnectionExtensions.ExecuteNonQuery(IDbConnection connection, IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.Commands.Entities.KeylessCreateCommand.ExecuteChunk(IDatabaseConnection connection, Int32 startOfLastChunk)
   bei JTL.Database.Commands.Entities.CreateCommandBase.Execute(IDatabaseConnection connection)
   bei jtlDatabase.jtlObjectRepositoryBase.wSWZi0CVHB(IEnumerable`1  , Type  )
   bei jtlDatabase.jtlObjectRepositoryBase.HK7Z8DkOyQ(IGrouping`2  )
   bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   bei System.Linq.Enumerable.Sum(IEnumerable`1 source)
   bei jtlDatabase.jtlObjectRepositoryBase.Create(IEnumerable`1 items)
   bei jtlDatabase.jtlObject.insertInDB()
   bei jtlDatabase.jtlObject.Save()
   bei jtlCore.ControllerClasses.Connector.Shopkonfiguration.ShopKonfigurationHelper.SaveMeasurementUnits(GlobalData globalData, Connector connector)
   bei jtlCore.ControllerClasses.Connector.Shopkonfiguration.ShopKonfigurationController.xbWDRmX8xkt(GlobalData  )
   bei jtlCore.ControllerClasses.Connector.Shopkonfiguration.ShopKonfigurationController.Run()
   bei jtlCore.Classes.CppConnector.CppConnector.ConnectorKonfiguration(Int32 kShop, Int32 nFormHandle)
   bei JTLwawi.CJTLwawi.JTL_ConnectorKonfiguration(String SRV, String DBN, String DBU, String DBP, Int32 kBenutzer, Int32 kShop, Int32& result, Int32 nFormHandle)
ClientConnectionId:087887cb-1d1c-4601-8212-06b454e45d3a
Fehlernummer (Error Number):2627,Status (State):1,Klasse (Class):14
SQL-Fehlerinformationen: [RS-90874\JTLWAWI .Net SqlClient Data Provider] Fehler #2627 (Klasse 14) in Zeile 1: Verletzung der PRIMARY KEY-Einschränkung "PK_tMassEinheitSprache". Ein doppelter Schlüssel kann in das dbo.tMassEinheitSprache-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (22, 1). 
SQL-Fehlerinformationen: [RS-90874\JTLWAWI .Net SqlClient Data Provider] Fehler #3621 (Klasse 0) in Zeile 1: Die Anweisung wurde beendet. 
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.2037
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 2627
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
WasHandled = True
ConnectionString = Data Source=RS-90874\JTLWAWI;Initial Catalog=Mandant_1;Integrated Security=False;Persist Security Info=True;User ID=sa;Password=************;MultipleActiveResultSets=True;Connect Timeout=120;Application Name="JTL-Wawi C#";Current Language=German
CommandText = INSERT INTO [dbo].[tMassEinheitSprache] ([kMassEinheit], [kSprache], [cName]) VALUES (@kMassEinheit, @kSprache, @cName);


Parameter @kMassEinheit = 22
Parameter @kSprache = 1
Parameter @cName = 'Paket(e)'
LineNr = 1
Codefragment = INSERT INTO [dbo].[tMassEinheitSprache] ([kMassEinheit], [kSprache], [cName]) VALUES (@kMassEinheit, @kSprache, @cName);


2021-10-02T19:00:26 DEBUG - Dauer: 0ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, 2 Zeilen
2021-10-02T19:00:26 DEBUG - SELECT * FROM [tEinheitSprache]
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, 1 Zeilen
2021-10-02T19:00:26 DEBUG - SELECT * FROM [tMassEinheit]
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, 21 Zeilen
2021-10-02T19:00:26 DEBUG - SELECT * FROM [tMassEinheitSprache] WHERE [kSprache] = @kSprache
@kSprache = 1
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, 21 Zeilen
2021-10-02T19:00:26 DEBUG - DECLARE @Identities TABLE (Id INT NOT NULL);
INSERT INTO [dbo].[tMassEinheit] ([cCode], [cDisplayCode], [kBezugsMassEinheit], [fBezugsMassEinheitFaktor]) OUTPUT INSERTED.[kMassEinheit] AS [Id] INTO @Identities VALUES (@cCode, @cDisplayCode, @kBezugsMassEinheit, @fBezugsMassEinheitFaktor);
SELECT [Id] FROM @Identities ORDER BY [Id];


@cCode = 'Paket(e)'
@cDisplayCode = 'Paket(e)'
@kBezugsMassEinheit = 0
@fBezugsMassEinheitFaktor = 0
2021-10-02T19:00:26 DEBUG - Dauer: 1ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 2 ms, 1 Zeilen
2021-10-02T19:00:26 DEBUG - INSERT INTO [dbo].[tMassEinheitSprache] ([kMassEinheit], [kSprache], [cName]) VALUES (@kMassEinheit, @kSprache, @cName);


@kMassEinheit = 22
@kSprache = 1
@cName = 'Paket(e)'
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, AffectedRows: 1
2021-10-02T19:00:26 DEBUG - INSERT INTO [dbo].[tMassEinheitSprache] ([kMassEinheit], [kSprache], [cName]) VALUES (@kMassEinheit, @kSprache, @cName);


@kMassEinheit = 22
@kSprache = 1
@cName = 'Paket(e)'
2021-10-02T19:00:26 WARN - Dauer: 0ms, Error: Verletzung der PRIMARY KEY-Einschränkung "PK_tMassEinheitSprache". Ein doppelter Schlüssel kann in das dbo.tMassEinheitSprache-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (22, 1).
Die Anweisung wurde beendet.
2021-10-02T19:00:26 DEBUG - IF OBJECT_ID('dbo.tErrorlog', 'U') IS NULL SELECT 0 ELSE SELECT 1;
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, Result: 1
2021-10-02T19:00:26 DEBUG - SELECT TOP 1 * FROM dbo.tErrorlog WHERE cRechnername = @cRechnername AND nFehlerID = @nFehlerID ORDER BY dErstelltUtc ASC
@cRechnername = 'XXXX'
@nFehlerID = 2217883903217589821
2021-10-02T19:00:26 DEBUG - Dauer: 3ms, (bis zum Reader)
2021-10-02T19:00:26 DEBUG - Dauer: 4ms, 1 Zeilen
2021-10-02T19:00:26 DEBUG - UPDATE [dbo].[tErrorlog] SET dErstelltUtc = @dErstelltUtc_0 WHERE kErrorlog = @kErrorlog_0;


@dErstelltUtc_0 = '2021-10-02 05:00:26'
@kErrorlog_0 = 1
2021-10-02T19:00:26 DEBUG - Dauer: 0ms, AffectedRows: 1
Zeitstempel: 2021-10-02T19:00:31
Locale: German (Germany)
Locale: German (Germany)
Version: 1.5.49.2
Plattform: Wawi
WawiSeed: 0.0.90820.22003
Prozessname: JTL-Wawi
Physikalischer Speicher: 552480768 / Peak: 555040768
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:16,125
CPU-Zeit (System): 0:00:05,125
Page-Size (Sytem): 2095304 / Peak: 455630848
Page-Size: 453611520 / Peak: 455630848
Offene Handles: 1572
Database:
Build: 2109270831 748682e9939a57817cbf243e2b9eddebb81a7890
 

Anhänge

  • fehler-jtl.jpg
    fehler-jtl.jpg
    84,6 KB · Aufrufe: 5

Scriptfarm DEV

Aktives Mitglied
7. Dezember 2018
63
17
Sagt er dir ja auf die Hand, es existiert schon von ein PRIMARY KEY : "PK_tMassEinheitSprache".
Eventuell schon mal installiert, eine fehlgelaufene Installation, oder eine andere Aktion die den Key schon angelegt hatte.
Am einfachsten ist es ihn manuell zu löschen, wie kommt auf dich an, DB Manager ect.
Eventuell kann es aber auch sein, das nach dem löschen dieses Schlüssel noch weitere doppelte Schlüssel auftauchen.
Vorher immer eine Kopie der Tabelle oder Schlüssel machen.
 
Zuletzt bearbeitet:

dampfer

Neues Mitglied
2. Oktober 2021
4
0
Hab mir das jetzt mal angesehen, die Tabelle ist leer und der Key 22 ist "Paket(e)". Bin über SQL Servermanagement reingegangen, da kann ich aber ohne Gefummel nur auslesen.
 

dervondrüben

Neues Mitglied
29. Mai 2021
1
0
Das Problem ist nicht "tMassEinheit" sondern "tMassEinheitSprache".

MfG

McAvity
Ja, da hab ich auch nachgesehen. Finde trotzdem keinen Ansatz. Evtl. sitzt das Problem auch in Shopware, ich habe es nun mal auf einen anderen Server wieder mit einer jungfräulicnen Wawi probiert. Habe nur den Shop angebunden, sonst nichts. Kam sofort diese Fehlermeldung.