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.629
1.962
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
8.444
2.572
Berlin
Firma
css-umsetzung
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.629
1.962
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.)
 

MikeHeess

Neues Mitglied
12. Dezember 2024
3
0
😂 ... also ich hatte noch nie ein Problem damit, weder Live noch in Test-Systemen. Sollte klappen.

Im Test System: Neuste WAWI installieren, aktuelle Daten restoren und migrieren lassen.
Hallo zusammen,
bei mir kam eine Fehlermeldung bei diesem Versuch dass Wawi meinte Version 1.9.x.x sei älter als Version 1.0.0.0 und bricht ab.
Kann es sein dass bei dem Restore in die SQL-Tabelle Version 1.0.0.0 geschrieben wird ? und somit 1.9.x.x überschrieben ist ?
Grüße Mike
 

Manuel Pietzsch

JTL-Wawi
Mitarbeiter
2. Januar 2012
2.895
1.074
Hückelhoven
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?
Hi,

sowie ich das lese sind die Objekte vorhanden, aber unter anderem Typ. Du kannst ggf. mal im MMS unter den Tabellen bei Schlüsseln und Einschränkungen schauen, ob du da was mit dem Namen findest, das Löschen und dann als Fake Constraint anlegen sollte gehen.
Aber mach bitte vorher ein Backup. Und als JTL Mitarbeiter kann ich dir mit gutem Gewissen empfehlen auf eine aktuellere Version zu gehen. Wenn du wirklich mal ein Problem hast in so einer alten Version, wird dir niemand helfen können.
Die größten Änderungen aus Anwendersicht passieren ab der Version 1.6, dazu habe ich eine Playlist um die neuen Prozesse schnell verstehen zu können:

https://youtube.com/playlist?list=PL44cp2iiTsTV8fwCbOVfR3W9cguJlFnuJ&si=0gaG-_uFpAbFejhj

Gruß

Manuel
 

josssiii

Neues Mitglied
26. Januar 2025
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');


---
--- Set tVersion
---
UPDATE [dbo].[tVersion] SET [cVersion] = '1.1.4.14';
2024-09-21T02:56:25 DEBUG - [SQL] Duration: 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] Duration: 1ms
Timestamp: 2024-09-21T02:58:09
Locale: German (Germany)
Locale: German (Germany)
Version: 1.1.4.14
Platform: Wawi
Version hash: 38354FDF
Process name: System.Diagnostics.Process (JTL-Wawi)
Physical memory: 258314240 / Peak: 829104128
Base priority: 8
Priority Class: Normal
CPU time (user): 0:00:08.46875
CPU time (system): 0:00:03.328125
Page Size (System): 1806176 / Peak: 769429504
Page Size: 186138624 / Peak: 769429504
Open handles: 1379

I tried working with SQL Studio (2017) and possibly setting "fake" constraints, but nothing helps :/ Is there anyone here who can help me? pixelcarracerapk.com
It seems like you're making progress with the update. If you're encountering errors during DB import, check for any compatibility issues between versions or missing files. Reviewing the error log can help pinpoint the exact cause.
 

matze77

Neues Mitglied
4. März 2025
1
0
Moin, habe das gleiche Problem und arbeite noch mit 1.1.4.14 und möchte nun auf die neueste Version springen. Wie ich es hier im Forum herausgelesen habe, sollte es gehen wenn man gleich direkt die neuste Version installiert und die alte db importiert. Funktioniert das oder hat jemand Tips dazu?
 
Ähnliche Themen
Titel Forum Antworten Datum
Update von 1.11.6 auf 1.11.7: JTL Worker verbindet nicht mehr mit Datenbank (WaWi schon) JTL-Wawi 1.11 1
Neu von JTL-Wawi-Version 1.10.16.0 ist kein Update...möglich Installation von JTL-Wawi 2
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Neu WAWI Update - welche Version denn nun? User helfen Usern - Fragen zu JTL-Wawi 19
WAWI - Update JTL-Wawi 2.0 17
Nach Update auf Wawi 2.0.X, API v1 Fehler JTL-Wawi 2.0 9
Neu JTL-Wawi Update Historie User helfen Usern - Fragen zu JTL-Wawi 2
Neu Update Wawi 1.10.16.0 auf 1.11.7 -> JTL-POS Einrichtung / Updates von JTL-POS 2
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7
Neu POS-Server startet nicht mehr nach WaWi-update auf Version 1.11.6.0 JTL-POS - Fehler und Bugs 1
Update von 1.10.10.3 auf aktuellere Versionen JTL-Wawi 1.10 0
Neu Update fehlgeschlagen Starten mit JTL: Projektabwicklung & Migration 4
Nach Update auf 2.0 auf einmal kostenpflichtig JTL-Wawi 2.0 2
Neu Update von 1.8.12.4 auf 1.11 User helfen Usern - Fragen zu JTL-Wawi 0
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Nach Update auf 2.01 kein Worker mehr JTL-Wawi 2.0 12
Neu JTL Pos liest keine Verkäufe mehr ein nach Update Einrichtung / Updates von JTL-POS 0
Neu Datenbank-Update bricht ab Installation / Updates von JTL-Shop 8
Update auf 2.0.1 Fehler bei eazybusiness JTL-Wawi 2.0 17
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
Update auf 2.0.1.0 bricht ab bei 1.12.0.0. JTL-Wawi 2.0 6
Beantwortet Update von 1.11.5 auf 2.0 bleibt hängen JTL-Wawi 2.0 2
Seit Update keine zweite POS-Anbindung mehr möglich JTL-Wawi 2.0 10
Update 1.9.8.0 auf 1.11.7.0 sofort Meldung "Not Responding" JTL-Wawi 1.11 2
Neu Problem nach Update auf Shop 5.6.1 - Impressum JTL-Shop - Fehler und Bugs 2
Seit umzug auf neuen Server und vorherigem update auf 2.0, startet worker nicht... JTL-Wawi 2.0 4
Shop Apotheke Bestellungen seit Update als „nicht bezahlt“ – Versand blockiert JTL-Wawi 2.0 6
Neu Strukturierte Daten vom Typ "Produkt" werden nach Update auf JTL Shop 5.6.1 nur fehlerhaft erkannt JTL-Shop - Fehler und Bugs 3
Warnung vor Update? JTL-Wawi 1.11 20
Neu nach Update nicht alle Rechnungen mehr an Amazon Amazon-Anbindung - Fehler und Bugs 0
Update auf 1.11.7 JTL-Wawi 1.11 4
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu OPC friert beim speichern von Änderungen ein nach JTL-Shop Update von Version 5.1.5 auf 5.6.1 JTL-Shop - Fehler und Bugs 6
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 11
Neu Update auf 1.11.6 mittlerweile sinnvoll User helfen Usern - Fragen zu JTL-Wawi 0
2.0.1 BUG Wawi ignoriert Sonderpreise JTL-Wawi 2.0 0
Using short screen recordings for JTL-Wawi workflow documentation – anyone doing this? JTL-Wawi 2.0 3
JTL-Wawi 1.11.7 Sporadischer Fehler - Zugriff verweigert. JTL-Wawi 1.11 0
Neu JTW WAWI benötigt schnellstmöglich wieder eine funktionierende DATEV Schnittstelle!! JTL-Wawi - Ideen, Lob und Kritik 0
Neu JTL Wawi Einloggen geht nicht!! User helfen Usern - Fragen zu JTL-Wawi 4
Neu Gutscheincodes aus Shopware 6 in JTL Wawi als Anmerkung zeigen? Shopware-Connector 0
Neu Aktuellste unproblematische WAWI-Version finden - wie ? JTL-Wawi - Ideen, Lob und Kritik 6
Neu Database connection timeouts and interface lag in JTL-Wawi with background script managers User helfen Usern 0
Neu product_visibility bei JTL-Wawi und Shopware 6 Shopware-Connector 1
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4
Neu Plattformkosten auf Auftragspositionsebene in die JTL WaWi schreiben Arbeitsabläufe in JTL-Wawi 4
Neu Shopware 5 connector und WawI 1.11.06 bis 1.11.8 Shopware-Connector 0
Neu JTL-Wawi in einem EU-Land einsetzen – rechtliche & technische Fragen Installation von JTL-Wawi 2
Neu Versandart von Shopify zu JTL Wawi & Sendungsnummern von Wawi zu Shopify!? Shopify-Connector 0
Neu JTL Editionen / JTl Wawi / Shopify / Durchblick verloren Kosten / Was brauche ich wirklich User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen