Neu Update Wawi von 1.0.11 auf 1.9

ebds

Neues Mitglied
21. September 2024
1
0
Hallo zusammen,
ich habe grosses vor mir und versuche gerade "Step by Step" ein Update einer sehr veralteten Wawi Version durchzufuehren.
Derzeit versuche ich ein Update von 1.0.11 auf 1.1.4.14 (weil ich nichts aelteres finden konnte)
Die ersten 2 Fehlermeldungen die ich hatte mit der Collation konnte ich loesen. Doch nun wenn ich versuche die DB zu importieren (Reperatur wurde bereits ausgefuehrt) erhalte ich folgenden Log:

Code:
Unbehandelte Ausnahme #5AC80CA6F45F9EC0 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): DF_tMahnstufe_nBevorzugeKundenZahlungsziel ist keine Einschränkung.
Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler.
   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.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   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 jtlDatabase.DB.ExecuteAndCatchDeadlock[T](SqlConnection oSqlConnection, Func`1 func)
   bei jtlDatabase.DB.executeLongRunningCommandSQL(String cSqlCommand, jtlDBParameter[] oDBParameter_arr)
   bei jtlCore.Classes.Update.SqlUpdater.<>c__DisplayClass2.<UpdateToVersion>b__0()
   bei jtlCore.Classes.Update.SqlUpdater.UpdateLogger.Log(Action action, Int32 index, String command)
   bei jtlCore.Classes.Update.SqlUpdater.UpdateToVersion(IList`1 sqlCommands, Version cVersion, TaskProgress oProgress)
ClientConnectionId:425088da-34ff-4922-9517-e690885132ad
Fehlernummer (Error Number):3728,Status (State):1,Klasse (Class):16
SQL-Fehlerinformationen: [LAPTOP-CH48PS9A\JTLWAWI .Net SqlClient Data Provider] Fehler #3728 (Klasse 16) in Zeile 1: DF_tMahnstufe_nBevorzugeKundenZahlungsziel ist keine Einschränkung. 
SQL-Fehlerinformationen: [LAPTOP-CH48PS9A\JTLWAWI .Net SqlClient Data Provider] Fehler #3727 (Klasse 16) in Zeile 1: Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler. 
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.2060
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3728
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText = ALTER TABLE [dbo].[tMahnstufe] DROP CONSTRAINT [DF_tMahnstufe_nBevorzugeKundenZahlungsziel]
ALTER TABLE dbo.tMahnstufe DROP COLUMN nBevorzugeKundenZahlungsziel
LineNr = 1
Codefragment = ALTER TABLE [dbo].[tMahnstufe] DROP CONSTRAINT [DF_tMahnstufe_nBevorzugeKundenZahlungsziel]
Connection-String = DataSource=LAPTOP-CH48PS9A\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa

Unbehandelte Ausnahme #5AC80CA6F45F9EC0 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action]): DF_tkunde_nMahnrhytmus ist keine Einschränkung.
Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler.
SQL-Fehler:
  Source: .Net SqlClient Data Provider
  Number: 3728
  State: 1
  Class: 16 (Anwendungsproblem)
  Server: LAPTOP-CH48PS9A\JTLWAWI
  Message: DF_tkunde_nMahnrhytmus ist keine Einschränkung.
  Procedure:
  LineNumber: 1

SQL-Fehler:
  Source: .Net SqlClient Data Provider
  Number: 3727
  State: 0
  Class: 16 (Anwendungsproblem)
  Server: LAPTOP-CH48PS9A\JTLWAWI
  Message: Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler.
  Procedure:
  LineNumber: 1

HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.2060
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3728
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText = ALTER TABLE [dbo].[tkunde] DROP CONSTRAINT [DF_tkunde_nMahnrhytmus]
LineNr = 1
Codefragment = ALTER TABLE [dbo].[tkunde] DROP CONSTRAINT [DF_tkunde_nMahnrhytmus]
Connection-String = DataSource=LAPTOP-CH48PS9A\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa

Unbehandelte Ausnahme #5AC80CA6F45F9EC0 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action]): Löschen des Index-Objekts "dbo.tWarenLagerPlatz.IX_tWarenLagerPlatz_kWarenLager" ist nicht möglich, weil das Objekt nicht vorhanden ist oder Sie nicht die erforderliche Berechtigung haben.
SQL-Fehler:
  Source: .Net SqlClient Data Provider
  Number: 3701
  State: 7
  Class: 11 (Anwendungsproblem)
  Server: LAPTOP-CH48PS9A\JTLWAWI
  Message: Löschen des Index-Objekts "dbo.tWarenLagerPlatz.IX_tWarenLagerPlatz_kWarenLager" ist nicht möglich, weil das Objekt nicht vorhanden ist oder Sie nicht die erforderliche Berechtigung haben.
  Procedure:
  LineNumber: 3

HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.2060
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3701
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText = -- dbo.tWarenLagerPlatz.nStatus darf nicht NULL sein, werden zu 0 gemacht und constraint drauf

DROP INDEX [IX_tWarenLagerPlatz_kWarenLager] ON [dbo].[tWarenLagerPlatz];

UPDATE dbo.tWarenLagerPlatz
SET nStatus = 0
WHERE nStatus IS NULL;

ALTER TABLE dbo.tWarenLagerPlatz ALTER COLUMN nStatus INT NOT NULL;

ALTER TABLE dbo.tWarenLagerPlatz  ADD CONSTRAINT DF_tWarenLagerPlatz_nStatus DEFAULT 0 FOR nStatus;


CREATE NONCLUSTERED INDEX [IX_tWarenLagerPlatz_kWarenLager] ON [dbo].[tWarenLagerPlatz]
(
    [kWarenLager] ASC
)
INCLUDE (     [nStatus]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
LineNr = 3
Codefragment = UPDATE dbo.tWarenLagerPlatz
Connection-String = DataSource=LAPTOP-CH48PS9A\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa

Unbehandelte Ausnahme #5AC80CA6F45F9EC0 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action]): DF_tprintform_cZahlungsziel ist keine Einschränkung.
Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler.
SQL-Fehler:
  Source: .Net SqlClient Data Provider
  Number: 3728
  State: 1
  Class: 16 (Anwendungsproblem)
  Server: LAPTOP-CH48PS9A\JTLWAWI
  Message: DF_tprintform_cZahlungsziel ist keine Einschränkung.
  Procedure:
  LineNumber: 8

SQL-Fehler:
  Source: .Net SqlClient Data Provider
  Number: 3727
  State: 0
  Class: 16 (Anwendungsproblem)
  Server: LAPTOP-CH48PS9A\JTLWAWI
  Message: Die Einschränkung konnte nicht gelöscht werden. Siehe vorherige Fehler.
  Procedure:
  LineNumber: 8

HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.2060
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3728
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText = -- Falsch definierte Spalten korrigieren
ALTER TABLE dbo.tConfiguration ALTER COLUMN Arbeitsplatz NVARCHAR(200);
ALTER TABLE dbo.tAttribut ALTER COLUMN cGruppeName NVARCHAR(150);
ALTER TABLE dbo.tSprachen ALTER COLUMN cKultur NCHAR(20);
ALTER TABLE dbo.tSpracheUsed ALTER COLUMN cKultur NCHAR(20);
ALTER TABLE dbo.tFeldTyp ALTER COLUMN cName NVARCHAR(300) NOT NULL;
ALTER TABLE dbo.tintervallpos ALTER COLUMN kArtikel INT;
ALTER TABLE dbo.tprintform DROP CONSTRAINT DF_tprintform_cZahlungsziel;
ALTER TABLE dbo.tprintform ADD CONSTRAINT DF_tprintform_cZahlungsziel DEFAULT ('Das Zahlungsziel beträgt <T> Tage.') FOR cZahlungsziel;

-- Index droppen
IF EXISTS(SELECT * FROM sys.indexes WHERE name = 'IX_tMerkmalGruppeMerkmal_kMerkmalGruppe' AND object_id = OBJECT_ID('[dbo].[tMerkmalGruppeMerkmal]'))
BEGIN
    DROP INDEX IX_tMerkmalGruppeMerkmal_kMerkmalGruppe ON [dbo].[tMerkmalGruppeMerkmal];
END;
LineNr = 8
Codefragment = ALTER TABLE dbo.tprintform DROP CONSTRAINT DF_tprintform_cZahlungsziel;
Connection-String = DataSource=LAPTOP-CH48PS9A\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa

2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 1ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- tgr_tXSell_Connector_DELETE
---
IF EXISTS ( SELECT *
            FROM sys.objects
            WHERE object_id = OBJECT_ID(N'[tgr_tXSell_Connector_DELETE]')
            AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tXSell_Connector_DELETE]
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tXSell_Connector_DELETE]
--
-- Copyright (c) 2012-2017 by JTL Software GmbH
-- Datum: $Date$
-- Version: $Rev$
-- Autor: MP
--
ON [dbo].[tXSell]
AFTER DELETE
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
    --Überprüfen ob Trigger gefüllt aufgerufen wird
    IF((SELECT COUNT(1) FROM DELETED) = 0)
    BEGIN
        RETURN;
    END;

    DECLARE @Komplett AS INT;
    --DECLARE @Preis AS INT;
    --DECLARE @Bestand AS INT;

    SET @Komplett = 1
    --SET @Preis = 2
    --SET @Bestand = 4

    INSERT INTO dbo.tQueue (kShop, kPlattform, cName, kWert, nAction, kOption1, kOption2, nInBearbeitung)
    SELECT dbo.tArtikelShop.kShop, 0, 'tXSell', DELETED.kArtikel, 2, 0, 0, 0
    FROM DELETED
    JOIN dbo.tArtikelShop ON DELETED.kArtikel = dbo.tArtikelShop.kArtikel
    LEFT JOIN dbo.tXSell ON DELETED.kArtikel = dbo.tXSell.kArtikel
    WHERE dbo.tXSell.kArtikel IS NULL

    UPDATE dbo.tArtikelShop
        SET dbo.tArtikelShop.cInet = 'Y',
            dbo.tArtikelShop.nAktion = @Komplett,
            dbo.tArtikelShop.nInBearbeitung = 0
    FROM DELETED
    JOIN dbo.tArtikelShop ON DELETED.kArtikel = dbo.tArtikelShop.kArtikel
    JOIN dbo.tXSell ON DELETED.kArtikel = dbo.tXSell.kArtikel
    WHERE    dbo.tArtikelShop.cInet = 'N'
            OR dbo.tArtikelShop.nAktion & @Komplett = 0
            OR dbo.tArtikelShop.nInBearbeitung = 1;


END
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 1ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- tgr_tXSell_Connector_INSERT_UPDATE
---
IF EXISTS ( SELECT *
            FROM sys.objects
            WHERE object_id = OBJECT_ID(N'[tgr_tXSell_Connector_INSERT_UPDATE]')
            AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tXSell_Connector_INSERT_UPDATE]
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tXSell_Connector_INSERT_UPDATE]
--
-- Copyright (c) 2012-2017 by JTL Software GmbH
-- Datum: $Date$
-- Version: $Rev$
-- Autor: MP
--
ON [dbo].[tXSell]
AFTER UPDATE, INSERT
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
    --Überprüfen ob Trigger gefüllt aufgerufen wird
    IF((SELECT COUNT(1) FROM INSERTED) = 0)
    BEGIN
        RETURN;
    END
    
    DECLARE @Komplett AS INT;
    --DECLARE @Preis AS INT;
    --DECLARE @Bestand AS INT;

    SET @Komplett = 1
    --SET @Preis = 2
    --SET @Bestand = 4

    --
    -- Artikel vollständig zu Webshops senden, wenn Änderungen vorgenommen wurden
    --
    UPDATE dbo.tArtikelShop
        SET dbo.tArtikelShop.nAktion = dbo.tArtikelShop.nAktion | @Komplett,
            dbo.tArtikelShop.cInet = 'Y',
            dbo.tArtikelShop.nInBearbeitung = 0
    FROM dbo.tArtikelShop
    JOIN INSERTED ON dbo.tArtikelShop.kArtikel = INSERTED.kArtikel       
    WHERE    dbo.tArtikelShop.cInet = 'N'
            OR dbo.tArtikelShop.nAktion & @Komplett = 0
            OR dbo.tArtikelShop.nInBearbeitung = 1;

END
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 1ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- tgr_tXSellGruppe_INSUPDEL
---
IF EXISTS ( SELECT *
            FROM sys.objects
            WHERE object_id = OBJECT_ID(N'[tgr_tXSellGruppe_INSUPDEL]')
            AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tXSellGruppe_INSUPDEL]
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tXSellGruppe_INSUPDEL]
--
-- Copyright (c) 2012-2017 by JTL Software GmbH
-- Datum: $Date$
-- Version: $Rev$
--
ON [dbo].[tXSellGruppe]
AFTER INSERT, UPDATE, DELETE
AS
SET CONCAT_NULL_YIELDS_NULL ON;
SET ANSI_WARNINGS ON;
SET ANSI_PADDING ON;
SET NOCOUNT ON;
BEGIN
    --Überprüfen ob Trigger gefüllt aufgerufen wird
    IF((SELECT COUNT(1) FROM INSERTED FULL JOIN DELETED ON INSERTED.kXSellGruppe = DELETED.kXSellGruppe) = 0)
    BEGIN
        RETURN
    END

    INSERT INTO dbo.tGlobalsQueue(kShop, nType, cName, kKey, dTimeStamp)
    SELECT dbo.tShop.kShop, 1, 'tXSellGruppe', INSERTED.kXSellGruppe, GETDATE()
    FROM INSERTED
    JOIN dbo.tSpracheUsed ON INSERTED.kSprache = dbo.tSpracheUsed.kSprache
        AND dbo.tSpracheUsed.nStandard = 1
    LEFT JOIN DELETED ON INSERTED.kXSellGruppe = DELETED.kXSellGruppe
    CROSS JOIN dbo.tShop
    WHERE DELETED.kXSellGruppe IS NULL;

    INSERT INTO dbo.tGlobalsQueue(kShop, nType, cName, kKey, dTimeStamp)
    SELECT dbo.tShop.kShop, 1, 'tXSellGruppe', INSERTED.kXSellGruppe, GETDATE()
    FROM INSERTED
    JOIN dbo.tSpracheUsed ON INSERTED.kSprache = dbo.tSpracheUsed.kSprache
        AND dbo.tSpracheUsed.nStandard = 1
    JOIN DELETED ON INSERTED.kXSellGruppe = DELETED.kXSellGruppe
    CROSS JOIN dbo.tShop
    WHERE DELETED.cName <> INSERTED.cName
        OR DELETED.cBeschreibung <> INSERTED.cBeschreibung;

    INSERT INTO dbo.tGlobalsQueue(kShop, nType, cName, kKey, dTimeStamp)
    SELECT dbo.tShop.kShop, 2, 'tXSellGruppe', DELETED.kXSellGruppe, GETDATE()
    FROM DELETED
    JOIN dbo.tSpracheUsed ON DELETED.kSprache = dbo.tSpracheUsed.kSprache
        AND dbo.tSpracheUsed.nStandard = 1
    LEFT JOIN INSERTED ON DELETED.kXSellGruppe = INSERTED.kXSellGruppe
    CROSS JOIN dbo.tShop
    WHERE INSERTED.kXSellGruppe IS NULL;
END
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 1ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- tgr_tZahlung_INSUPDEL
---
IF EXISTS ( SELECT *
            FROM sys.objects
            WHERE object_id = OBJECT_ID(N'[tgr_tZahlung_INSUPDEL]')
            AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tZahlung_INSUPDEL]
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tZahlung_INSUPDEL]
--
-- Copyright (c) 2012-2017 by JTL Software GmbH
-- Datum: $Date$
-- Version: $Rev$
--
ON [dbo].[tZahlung]
AFTER INSERT, UPDATE, DELETE
AS
SET CONCAT_NULL_YIELDS_NULL ON;
SET ANSI_WARNINGS ON;
SET ANSI_PADDING ON;
SET NOCOUNT ON;
BEGIN
    --Überprüfen ob Trigger gefüllt aufgerufen wird
    IF((SELECT COUNT(1) FROM INSERTED FULL JOIN DELETED ON INSERTED.kZahlung = DELETED.kZahlung) = 0)
    BEGIN
        RETURN
    END

    INSERT INTO dbo.tLog (dDatum, kBenutzer, cLog, nTyp, nVorgang)
    SELECT GETDATE(), INSERTED.kBenutzer, 'Zahlung gesetzt: Bestellung ' + CONVERT(VARCHAR(4000), dbo.tBestellung.cBestellNr) + ' ('+ CONVERT(VARCHAR(4000), INSERTED.kBestellung) + ') Betrag: ' + CONVERT(VARCHAR(4000), CAST(INSERTED.fBetrag AS DECIMAL(28, 2))), 8, 1
    FROM INSERTED
    LEFT JOIN DELETED ON INSERTED.kZahlung = DELETED.kZahlung
    JOIN dbo.tBestellung ON INSERTED.kBestellung = dbo.tBestellung.kBestellung
    WHERE DELETED.kZahlung IS NULL;

    INSERT INTO dbo.tLog (dDatum, kBenutzer, cLog, nTyp, nVorgang)
    SELECT GETDATE(), INSERTED.kBenutzer, 'Zahlung geändert: Bestellung ' + CONVERT(VARCHAR(4000), dbo.tBestellung.cBestellNr) + ' ('+ CONVERT(VARCHAR(4000), INSERTED.kBestellung) + ') Betrag: ' + CONVERT(VARCHAR(4000), CAST(INSERTED.fBetrag AS DECIMAL(28, 2))), 8, 2
    FROM INSERTED
    JOIN DELETED ON INSERTED.kZahlung = DELETED.kZahlung
    JOIN dbo.tBestellung ON INSERTED.kBestellung = dbo.tBestellung.kBestellung
    WHERE DELETED.fBetrag <> INSERTED.fBetrag;

    INSERT INTO dbo.tLog (dDatum, kBenutzer, cLog, nTyp, nVorgang)
    SELECT GETDATE(), DELETED.kBenutzer, 'Zahlung gelöscht: Bestellung ' + CONVERT(VARCHAR(4000), dbo.tBestellung.cBestellNr) + ' ('+ CONVERT(VARCHAR(4000), DELETED.kBestellung) + ') Betrag: ' + CONVERT(VARCHAR(4000), CAST(DELETED.fBetrag AS DECIMAL(28, 2))), 8, 3
    FROM DELETED
    LEFT JOIN INSERTED ON DELETED.kZahlung = INSERTED.kZahlung
    JOIN dbo.tBestellung ON DELETED.kBestellung = dbo.tBestellung.kBestellung
    WHERE INSERTED.kZahlung IS NULL;

    DECLARE @kZahlungenOhneZahlungsart AS TABLE (kZahlung INT)
    
    DECLARE @xBestellung AS XML
        SET @xBestellung = (
        SELECT DISTINCT U1.kBestellung FROM
        (
            SELECT DELETED.kBestellung FROM DELETED
            UNION
            SELECT INSERTED.kBestellung FROM INSERTED
        ) AS U1
        JOIN dbo.tbestellpos ON dbo.tbestellpos.tBestellung_kBestellung = U1.kBestellung
    FOR XML PATH('Bestellung'), TYPE
    )   
    IF(@xBestellung IS NOT NULL)
    BEGIN
        EXEC spBestellungEckdatenAktualisieren @xBestellungen = @xBestellung, @nKomplettAusgeliefertNichtBerechnen = 1;               
    END
    
    --
    -- Hier wird sichergestellt, dass kZahlungsart nicht 0 ist
    -- Dies ist für Ameisenexporte von Rechnungen erforderlich
    -- Der Wert 0 als Zahlungsart kann durch Importe aus externen Systemen entstehen
    --
    INSERT INTO @kZahlungenOhneZahlungsart (kZahlung)
    SELECT U1.kZahlung FROM
    (
        SELECT DELETED.kZahlung, DELETED.kZahlungsart FROM DELETED WHERE ISNULL(DELETED.kZahlungsart, 0) = 0   
        UNION
        SELECT INSERTED.kZahlung, INSERTED.kZahlungsart FROM INSERTED WHERE ISNULL(INSERTED.kZahlungsart, 0) = 0
    ) AS U1

    if(ISNULL((SELECT COUNT(kZahlung) FROM @kZahlungenOhneZahlungsart), 0) > 0)
    BEGIN
        DECLARE @kStandardZahlungsart INT
        SET @kStandardZahlungsart = ISNULL((SELECT TOP 1 tZahlungsart.kZahlungsart FROM tZahlungsart), 0)

        --
        -- Wenn keine Zahlungsart ermittelt werden kann wird eine Dummy-Zahlungsart angelegt
        --
        if(@kStandardZahlungsart = 0)
        BEGIN
            DECLARE @kZahlungsartPK AS TABLE (kZahlungsart INT)
            INSERT INTO @kZahlungsartPK(kZahlungsart) EXEC spGetAndUpdatePK 'tZahlungsart'
            SET @kStandardZahlungsart = ISNULL((SELECT TOP 1 kZahlungsart FROM @kZahlungsartPK), 0)   
                    
            INSERT INTO tZahlungsart(kZahlungsart, cName, cPrtString, nLastschrift, cPrtStringVor, cPaymentOption, cKonto, nAusliefernVorZahlung)
            VALUES(@kStandardZahlungsart, 'Automatisch angelegt', '', 0, '', '', '', 0)
        END

        --
        -- Zahlungsart setzen wo diese = 0 ist
        --
        UPDATE tZahlung WITH(ROWLOCK) SET tZahlung.kZahlungsart = ISNULL(tZahlungsart.kZahlungsart, @kStandardZahlungsart)
        FROM tZahlung WITH(ROWLOCK)
        LEFT JOIN tZahlungsart WITH(NOLOCK) ON LOWER(tZahlung.cName) = LOWER(tZahlungsart.cName)
        WHERE tZahlung.kZahlung IN
        (
            SELECT kZahlung FROM @kZahlungenOhneZahlungsart
        )
    END
END
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 4ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- trg_tinetbestellpos_DELETE
---
IF EXISTS ( SELECT *
            FROM sys.objects
            WHERE object_id = OBJECT_ID(N'[trg_tinetbestellpos_DELETE]')
            AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [trg_tinetbestellpos_DELETE]
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] CREATE TRIGGER [dbo].[trg_tinetbestellpos_DELETE]
--     
-- Copyright (c) 2012-2017 by JTL Software GmbH
-- Datum: $Date$
-- Version: $Rev$
--   
ON [dbo].[tinetbestellpos] 
AFTER DELETE
AS 
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
    
    UPDATE dbo.tArtikelShop
        SET dbo.tArtikelShop.cInet = 'Y',
            dbo.tArtikelShop.nAktion = 1,
            dbo.tArtikelShop.nInBearbeitung = 0
    FROM DELETED
    JOIN dbo.tArtikelShop ON DELETED.kArikel = dbo.tArtikelShop.kArtikel
                        AND DELETED.kShop = dbo.tArtikelShop.kShop
    WHERE dbo.tArtikelShop.cInet <> 'Y'
        AND dbo.tArtikelShop.nAktion = 0;

END;
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 0ms
2024-09-21T02:56:25 DEBUG - [SQL] ---
--- DatabaseModification
---
TRUNCATE TABLE tLastModified;

INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'ebay_xx_sites', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'ebay_xx_versandarten', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'ebay_xx_zahlungsmethoden', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'pf_amazon_Mapping_Variationsnamen', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tbenutzer', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tBenutzerFirma', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tbenutzerrechte', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'teinstellungen', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tfirma', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tkonfiggruppesprache', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tKundenGruppe', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tland', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tLogistik', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tOptions', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tprintform', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tRMStatus', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tRMStatusBerechtigung', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tRMStatusSprache', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tSpracheUsed', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tversion', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tWaehrungISO', '2000-01-01T00:00:00');


---
--- tVersion setzen
---
UPDATE [dbo].[tVersion] SET [cVersion] = '1.1.4.14';
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 3ms
2024-09-21T02:56:25 DEBUG - [SQL] DELETE FROM dbo.ameise_importtypfeld WHERE kImportTypFeld = 919;
 
MERGE INTO dbo.tOptions USING (VALUES ('Database.SvnRevision', '55256')) AS Source(cKey, cValue) ON tOptions.cKey = Source.cKey WHEN MATCHED THEN UPDATE SET tOptions.cValue = Source.cValue WHEN NOT MATCHED BY TARGET THEN INSERT (cKey, cValue) VALUES (Source.cKey, Source.cValue);
2024-09-21T02:56:25 DEBUG - [SQL] Dauer: 1ms
Zeitstempel: 2024-09-21T02:58:09
Locale: German (Germany)
Locale: German (Germany)
Version: 1.1.4.14
Plattform: Wawi
Versionshash: 38354FDF
Prozessname: System.Diagnostics.Process (JTL-Wawi)
Physikalischer Speicher: 258314240 / Peak: 829104128
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:08,46875
CPU-Zeit (System): 0:00:03,328125
Page-Size (Sytem): 1806176 / Peak: 769429504
Page-Size: 186138624 / Peak: 769429504
Offene Handles: 1379

Ich habe versucht hier mit SQL Studio (2017) zu arbeiten und ggf "fake" Constraints zu setzen, aber nichts hilft :/ Gibt es hier jemanden der mir weiterhelfen kann?
 

MichaelH

Sehr aktives Mitglied
17. November 2008
14.154
1.768
Also ich vermute mal, dass in der neuesten WAWI-Version (oder mind. 1.8.x) die meisten Datenprobleme behoben sind, während in der EXE der 1.1.4.14 auftretende Fehlermöglichkeiten nicht korrigiert wurden ?
Daher nimm doch die neueste WAWI-Version ?
Zudem dürfte die Migration mit dieser Version am Schnellsten sein, da auch Update-Performance Probleme die bekannt wurden verbessert wurden.

Was spricht dagegen ?

Neueste WAWI installieren, Daten Import, WAWI starten und schauen ob es klappt ? Geht recht schnell ...

Heißt: Verwende gleich deine Zielversion und keine alte, denn Step by Step hat keinen Vorteil. Denn die Zielversion macht ja automatisch einen Step by Step Update.
 
  • Gefällt mir
Reaktionen: christian1701

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.133
1.881
Berlin
Ja das würde ich auch zuerst versuchen, wenn die Datenbank sauber ist sollte das ohne Probleme durchlaufen, aber vorher muss wieder auf den originalen Zustand zurück, mit der vorher installierten wawi.
 
  • Gefällt mir
Reaktionen: christian1701

MichaelH

Sehr aktives Mitglied
17. November 2008
14.154
1.768
Ja das würde ich auch zuerst versuchen, wenn die Datenbank sauber ist sollte das ohne Probleme durchlaufen, aber vorher muss wieder auf den originalen Zustand zurück, mit der vorher installierten wawi.

Nein ?
Ein Restore auf die DB mit der WAWI kann mit jeder WAWI-Version gemacht werden, egal welche Version aktuell installiert ist, da es ja eine Funktion der Datenbank und nicht der WAWI ist.
Oder hat sich dies geändert ?

(Nur die Version der Datenbank sollte gleich sein oder das Backup eine ältere Version, da er ja kein Update der SQL-Version gemacht hat, dürfte er das Problem nicht haben.)
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Nach Update von 5.0.x auf 5.3.3 bricht Abgleich mit Wawi ab Installation / Updates von JTL-Shop 3
Hilfe benötigt bei der Umstellung von Variantenartikeln und Update auf JTL-Wawi 1.9 JTL-Wawi 1.9 3
JTL Wawi Update 1.8.12.4 auf 1.9.5.2 nicht möglich JTL-Wawi 1.9 3
Neu Abkündigung JTL-Wawi 1.5, Update nötig auf 1.9? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Wawi 1.9.4.4 funktioniert aktuell (noch) nicht mit LS-POS (Update) Fragen rund um LS-POS 3
Neu WMS APP Sprachausgabe funktioniert nach Android Update nicht mehr JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Update von 5.1.5 auf 5.3.3 Installation / Updates von JTL-Shop 2
Neu Problem mit Scroll-Link nach Update auf Shop-Version 5.3.3 Technische Fragen zu Plugins und Templates 5
Wann kommt neues Update 1.9.4.7 JTL-Wawi 1.9 5
Neu WMS Mobile langsam seit Android Update User helfen Usern 4
Neu Update auf 1.9 - wo sind die Kommentarfelder des Artikels geblieben? Eigene Übersichten in der JTL-Wawi 1
Neu Nach Update von PayPal Checkout wird PayPal Zahlungsart entfernt Plugins für JTL-Shop 4
update von 1.3.21.1 auf Version 1.8.12.2 JTL-Wawi 1.8 6
Neu PayPal Checkout Update auf 1.5.1 nicht möglich Betrieb / Pflege von JTL-Shop 2
Neu PayPal Checkout Update Plugins für JTL-Shop 12
Neu Probleme beim Update von 5.2.4 auf 5.3.3 Installation / Updates von JTL-Shop 6
Neu Fatal error nach Shop-Update im Frontend JTL-Shop - Fehler und Bugs 8
Fehler beim Update des Mandaten easybusiness JTL-Wawi 1.9 2
Neu Fehler bei Update: "SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'emails' already exists" Installation / Updates von JTL-Shop 4
Nach Update auf 1.9 / Export Rechnungskorrekturen Zeile Ust doppelt JTL-Wawi 1.9 8
Neu Datenbankmigration "General error: 1709 Index column size too large. The maximum column size is 767 bytes" nach Update von 5.2.4 auf 5.3.3. Installation / Updates von JTL-Shop 5
Fehler bei JTL-Update (1.5.55.8 -> 1.7.15.6) "Arithmetischer Überlauffehler beim Konvertieren von expression in den int-Datentyp." JTL-Wawi 1.7 9
Fehler und Bugs nach Update von 4.06 auf 5.3.3 mit Lösungen Sammelthread Upgrade JTL-Shop4 auf JTL-Shop5 3
Neu Connectorverbindung durch Update zerstört WooCommerce-Connector 12
Neu Fehler beim Update des Shops - DB Migration Installation / Updates von JTL-Shop 1
Neu Fiskal Cloud Connector (FCC) 4.1.1 - verpflichtendes Update bis spätestens 31. Juli 2024? Allgemeine Fragen zu JTL-POS 5
Neu Fehlereinträge im Log nach Update auf 5.3.3 Installation / Updates von JTL-Shop 14
Neu Nach Update von 5.0.x auf 5.3.3 funktioniert Checkout für Kunden ausserhalb Deutschland nicht mehr Installation / Updates von JTL-Shop 2
Neu Nach Update von 5.0.x auf 5.3.3 funktioniert "Mindestanzahl Verkäufe für Bestseller" Einstellung in Englischer Sprache nicht mehr Installation / Updates von JTL-Shop 0
Neu SQL Server Update von 2014 auf 2019 oder Neuinstallation? Installation von JTL-Wawi 4
Neu Update auf JTL Shop 4.05 Build 9 auf Community Free Edition JTL-Shop - Fehler und Bugs 1
Installation Update auf 1.9 lässt sich nicht abschließen JTL-Wawi 1.9 16
Neu Nach Update von 5.0.x auf 5.3.3 funktioniert Paypal Plus nicht meht Installation / Updates von JTL-Shop 4
Neu Richtiges Vorgehen beim Update Installation von JTL-Wawi 3
Neu Alte Workflows die nach Update nicht funktionieren - Lösungsansätze Gelöste Themen in diesem Bereich 5
Neu Update auf 5.3.3 - JTL Widgets erzeugt Fehler in CampaingController.php JTL-Shop - Fehler und Bugs 2
Update von 1.5.5.8 auf 1.9.4.6 Drucken von einer Rechnung viel zu langsam 3-4 Min JTL-Wawi 1.9 1
Update 1.9.4.6 Fehlerhafte Adresse von Amazon kann nicht mehr bearbeitet werden. JTL-Wawi 1.9 3
Neu Update von 5.2.2 auf 5.3.2 Datenbank-Update startet nicht JTL-Shop - Fehler und Bugs 5
Neu PayPal Checkout Plugin Update Arbeitsabläufe in JTL-Wawi 1
Neu CS für Update Shop 4.x auf Aktuell gesucht. Smalltalk 5
Neu Zahlungsmöglichkeiten werden nach PayPal Update nicht angezeigt Gelöste Themen in diesem Bereich 24
Neu Ameise (WAWI 1.9.5.2) -> Wie funktioniert der Upload der Produktion JTL-Plan&Produce - Ideen, Lob und Kritik 0
Neu kKunde != InternerSchlüssel > Aus Shop den Internern Schlüssel der WaWi Technische Fragen zu Plugins und Templates 1
Neu WooCommerce und JTL Wawi lassen sich nicht verbinden WooCommerce-Connector 3
Neu Artikel lässt sich im Shop 5.2.5 über die Wawi nicht löschen JTL-Shop - Fehler und Bugs 2
Neu Fehler bei Abgleich JTl Wawi mit JTL Shop User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Wawi Anbindung an Tyre24 Plattform Schnittstellen Import / Export 0
Mollie und die Wawi JTL-Wawi 1.8 5
Wie lange benötigt bei euch die Wawi zum starten JTL-Wawi 1.9 7

Ähnliche Themen