Orgasoft NT 5.7.0 - mögliche Fehlermeldungen beim Verbuchen

  • mos
  • Autor
  • Besucher
  • Besucher
10 Jahre 1 Monat her - 10 Jahre 1 Monat her #861 von mos
In Version 5.7.0 von Orgasoft NT kann es unter Umständen zu Fehlermeldungen beim Verbuchen von Vorfällen und bei der Rechnungskontrolle kommen. Diese Fehlermeldungen müssen nicht auftreten, da sie von den spezifischen Mandanten-Einstellungen der Vorfallarten und vom Vorfallbezug abhängen. Dennoch empfehlen wir, die unten stehenden Änderungen in der Hauptdatenbank einzuspielen, um die Fehlermeldungen von vorneherein zu vermeiden.

Um folgende, mögliche, Fehlermeldungen zu vermeiden können Sie in Ihrer Hauptdatenbank die unten angefügten SQL-Anweisungen ausführen, welche Datenbanktrigger anpassen, so dass die Ursache für die Fehlermeldungen behoben wird.

Beim Verbuchen von Vorfällen kann eine Fehlermeldung "Fehler beim Speichern des Vorfalls" erscheinen:

In der Protokolldatei "VBU.PRT" finden sich zu den betroffenen Vorfällen dann u.a. Einträge mit folgendem Inhalt:

Der Datensatz in Tabelle VorfallBezugAufVorfall kann nicht geändert werden. Die referentielle Integrität verlangt einen passenden Datensatz in Tabelle 'GeschäftsVorfall'


Bei der Rechnungskontrolle kann unter bestimmten Umständen diese Fehlermeldung erscheinen, wenn in den Positionen etwas geändert wurde und man anschließend auf Verbuchen klickt]ALTER TRIGGER [dbo].[VorfallBezugAufVorfall_Update] ON [dbo].[VorfallBezugAufVorfall] FOR UPDATE AS
/* PREVENT UPDATES if no matching key in 'GeschäftsVorfall' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNummer])
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNummer] IS NULL)) >
(SELECT COUNT(*)
FROM GeschäftsVorfall, inserted
WHERE [GeschäftsVorfall].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsVorfall].[VorfallNr]=inserted.[VorfallNummer])
BEGIN
RAISERROR (55556, 10, 1, 'VorfallBezugAufVorfall', 'GeschäftsVorfall')
ROLLBACK TRANSACTION
RETURN
END
END

[/code]

2.
ALTER TRIGGER [dbo].[GeschäftsVorfall_Update] ON [dbo].[GeschäftsVorfall] FOR UPDATE AS 
DECLARE @GeschäftsVorfallCount Int
DECLARE @iVorfallKürzel VarChar(10), @dVorfallKürzel VarChar(10), @iVorfallNr VarChar(8), @dVorfallNr VarChar(8), @iArbeitsplatz VarChar(2), @dArbeitsplatz VarChar(2)
DECLARE @iArbeitsplatzNeu VarChar(2)
SET @GeschäftsVorfallCount = @@RowCount

SET NOCOUNT ON

IF @GeschäftsVorfallCount>1
  BEGIN
    IF Not((Update([VorfallKürzel]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallKürzel])=@GeschäftsVorfallCount)) OR (Update([VorfallNr]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallNr])=@GeschäftsVorfallCount)) OR (Update([Arbeitsplatz]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [Arbeitsplatz])=@GeschäftsVorfallCount)))
      BEGIN
        IF UPDATE([Arbeitsplatz]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[Arbeitsplatz] FROM inserted, deleted WHERE inserted.[Arbeitsplatz]<>deleted.[Arbeitsplatz]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iArbeitsplatz=[Arbeitsplatz] FROM inserted
/* CASCADES UPDATE to 'VorfallBezugAufVorfall' */ 
IF @iArbeitsplatz='00' BEGIN SET @iArbeitsplatzNeu='' END 
ELSE BEGIN 
SET @iArbeitsplatzNeu=@iArbeitsplatz END
 UPDATE [VorfallBezugAufVorfall] 
	SET [VorfallBezugAufVorfall].[Arbeitsplatz]=@iArbeitsplatzNeu 
		FROM [VorfallBezugAufVorfall], deleted 
			WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr] AND [VorfallBezugAufVorfall].[Arbeitsplatz]=deleted.[Arbeitsplatz]
  /* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
            UPDATE [GeschäftsvorfallPosition]
                SET [GeschäftsvorfallPosition].[ArbeitsPlatz]=@iArbeitsplatz
                FROM GeschäftsvorfallPosition, deleted 
                WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
            /* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
            UPDATE [GeschäftsvorfallHatMultiFeld]
                SET [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=@iArbeitsplatz
                FROM GeschäftsvorfallHatMultiFeld, deleted 
                WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
          END
        IF UPDATE([VorfallNr]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallNr] FROM inserted, deleted WHERE inserted.[VorfallNr]<>deleted.[VorfallNr]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
            /* CASCADES UPDATE to 'GeschäftsvorfallZahlart' */
            UPDATE [GeschäftsvorfallZahlart]
                SET [GeschäftsvorfallZahlart].[VorfallNr]=@iVorfallNr
                FROM GeschäftsvorfallZahlart, deleted 
                WHERE [GeschäftsvorfallZahlart].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallZahlart].[VorfallNr]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
            UPDATE [VorfallBezugAufVorfall]
                SET [VorfallBezugAufVorfall].[VorfallNummer]=@iVorfallNr
                FROM VorfallBezugAufVorfall, deleted 
                WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
            UPDATE [GeschäftsvorfallPosition]
                SET [GeschäftsvorfallPosition].[VorfallNr]=@iVorfallNr
                FROM GeschäftsvorfallPosition, deleted 
                WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
            /* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
            UPDATE [GeschäftsvorfallHatMultiFeld]
                SET [GeschäftsvorfallHatMultiFeld].[VorfallNr]=@iVorfallNr
                FROM GeschäftsvorfallHatMultiFeld, deleted 
                WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
          END
        IF UPDATE([VorfallKürzel]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallKürzel] FROM inserted, deleted WHERE inserted.[VorfallKürzel]<>deleted.[VorfallKürzel]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
            /* CASCADES UPDATE to 'GeschäftsvorfallZahlart' */
            UPDATE [GeschäftsvorfallZahlart]
                SET [GeschäftsvorfallZahlart].[VorfallKürzel]=@iVorfallKürzel
                FROM GeschäftsvorfallZahlart, deleted 
                WHERE [GeschäftsvorfallZahlart].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallZahlart].[VorfallNr]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
            UPDATE [VorfallBezugAufVorfall]
                SET [VorfallBezugAufVorfall].[VorfallKürzel]=@iVorfallKürzel
                FROM VorfallBezugAufVorfall, deleted 
                WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
            UPDATE [GeschäftsvorfallPosition]
                SET [GeschäftsvorfallPosition].[VorfallKürzel]=@iVorfallKürzel
                FROM GeschäftsvorfallPosition, deleted 
                WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
            /* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
            UPDATE [GeschäftsvorfallHatMultiFeld]
                SET [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=@iVorfallKürzel
                FROM GeschäftsvorfallHatMultiFeld, deleted 
                WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
          END
      END

     ELSE
      BEGIN
        IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([Arbeitsplatz])
          BEGIN
            RAISERROR (55558, 10, 1, 'GeschäftsVorfall')
            ROLLBACK TRANSACTION
            RETURN
          END
      END
  END
 ELSE
  BEGIN
    SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
    SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
    SELECT TOP 1 @iArbeitsplatz=[Arbeitsplatz] FROM inserted

    IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([Arbeitsplatz])
      BEGIN
        /* CASCADES UPDATE to 'VorfallBezugAufVorfall' */
IF @iArbeitsplatz='00' BEGIN SET @iArbeitsplatzNeu='' END ELSE BEGIN SET @iArbeitsplatzNeu=@iArbeitsplatz END
        UPDATE [VorfallBezugAufVorfall]
SET [VorfallBezugAufVorfall].[VorfallKürzel]=@iVorfallKürzel, [VorfallBezugAufVorfall].[VorfallNummer]=@iVorfallNr, [VorfallBezugAufVorfall].[Arbeitsplatz]=@iArbeitsplatzNeu
            FROM [VorfallBezugAufVorfall], deleted 
WHERE [VorfallBezugAufVorfall].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallBezugAufVorfall].[VorfallNummer]=deleted.[VorfallNr] AND [VorfallBezugAufVorfall].[Arbeitsplatz]=deleted.[Arbeitsplatz]
        /* CASCADES UPDATE to 'GeschäftsvorfallPosition' */
        UPDATE [GeschäftsvorfallPosition]
            SET [GeschäftsvorfallPosition].[VorfallKürzel]=@iVorfallKürzel, [GeschäftsvorfallPosition].[VorfallNr]=@iVorfallNr, [GeschäftsvorfallPosition].[ArbeitsPlatz]=@iArbeitsplatz
            FROM [GeschäftsvorfallPosition], deleted 
            WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallPosition].[ArbeitsPlatz]=deleted.[Arbeitsplatz]
        /* CASCADES UPDATE to 'GeschäftsvorfallHatMultiFeld' */
        UPDATE [GeschäftsvorfallHatMultiFeld]
            SET [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=@iVorfallKürzel, [GeschäftsvorfallHatMultiFeld].[VorfallNr]=@iVorfallNr, [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=@iArbeitsplatz
            FROM [GeschäftsvorfallHatMultiFeld], deleted 
            WHERE [GeschäftsvorfallHatMultiFeld].[VorfallKürzel]=deleted.[VorfallKürzel] AND [GeschäftsvorfallHatMultiFeld].[VorfallNr]=deleted.[VorfallNr] AND [GeschäftsvorfallHatMultiFeld].[Arbeitsplatz]=deleted.[Arbeitsplatz]
      END
  END

/* PREVENT UPDATES if no matching key in 'Filialen' */
IF (UPDATE([Filialnummer]) AND (SELECT COUNT(*) FROM inserted WHERE [Filialnummer] IS NOT NULL)>0)
  BEGIN
    IF (SELECT COUNT(*) FROM inserted WHERE NOT([Filialnummer] IS NULL)) !=
       (SELECT COUNT(*) 
            FROM Filialen, inserted
            WHERE [Filialen].[Filialnummer]=inserted.[Filialnummer])
      BEGIN
        RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Filialen')
        ROLLBACK TRANSACTION
        RETURN
      END
  END

/* PREVENT UPDATES if no matching key in 'GeschäftsvorfallArt' */
IF UPDATE([VorfallKürzel])
  BEGIN
    IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL)) !=
       (SELECT COUNT(*) 
            FROM GeschäftsvorfallArt, inserted
            WHERE [GeschäftsvorfallArt].[VorfallKürzel]=inserted.[VorfallKürzel])
      BEGIN
        RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'GeschäftsvorfallArt')
        ROLLBACK TRANSACTION
        RETURN
      END
  END

/* PREVENT UPDATES if no matching key in 'Mitarbeiter' */
IF (UPDATE([ErfasstVon]) AND (SELECT COUNT(*) FROM inserted WHERE [ErfasstVon] IS NOT NULL)>0)
  BEGIN
    IF (SELECT COUNT(*) FROM inserted WHERE NOT([ErfasstVon] IS NULL)) !=
       (SELECT COUNT(*) 
            FROM Mitarbeiter, inserted
            WHERE 
.[MitarbeiterKürzel]=inserted.[ErfasstVon]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Mitarbeiter') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Lieferbedingung' */ IF (UPDATE([Lieferbedingung]) AND (SELECT COUNT(*) FROM inserted WHERE [Lieferbedingung] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([Lieferbedingung] IS NULL)) != (SELECT COUNT(*) FROM Lieferbedingung, inserted WHERE [Lieferbedingung].[LieferbedingungsNr]=inserted.[Lieferbedingung]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Lieferbedingung') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Zahlungsbedingung' */ IF (UPDATE([Zahlungsbedingung]) AND (SELECT COUNT(*) FROM inserted WHERE [Zahlungsbedingung] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([Zahlungsbedingung] IS NULL)) != (SELECT COUNT(*) FROM Zahlungsbedingung, inserted WHERE [Zahlungsbedingung].[Zahlungsbedingung]=inserted.[Zahlungsbedingung]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Zahlungsbedingung') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Adressen' */ IF (UPDATE([KorrNr]) AND (SELECT COUNT(*) FROM inserted WHERE [KorrNr] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([KorrNr] IS NULL)) != (SELECT COUNT(*) FROM Adressen, inserted WHERE [Adressen].[KorrNr]=inserted.[KorrNr]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Adressen') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Verkaufspreis' */ IF (UPDATE([VKPNr]) AND (SELECT COUNT(*) FROM inserted WHERE [VKPNr] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([VKPNr] IS NULL)) != (SELECT COUNT(*) FROM Verkaufspreis, inserted WHERE [Verkaufspreis].[VKPNr]=inserted.[VKPNr]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Verkaufspreis') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Sprache' */ IF (UPDATE([Sprache]) AND (SELECT COUNT(*) FROM inserted WHERE [Sprache] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([Sprache] IS NULL)) != (SELECT COUNT(*) FROM Sprache, inserted WHERE [Sprache].[Sprachencode]=inserted.[Sprache]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Sprache') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Währung' */ IF (UPDATE([Währung]) AND (SELECT COUNT(*) FROM inserted WHERE [Währung] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([Währung] IS NULL)) != (SELECT COUNT(*) FROM Währung, inserted WHERE [Währung].[Währungskürzel]=inserted.[Währung]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsVorfall', 'Währung') ROLLBACK TRANSACTION RETURN END END

3.
ALTER TRIGGER [dbo].[VorfallPositionBezugAufVorfallPosition_Update] ON [dbo].[VorfallPositionBezugAufVorfallPosition] FOR UPDATE AS 
/* PREVENT UPDATES if no matching key in 'GeschäftsvorfallPosition' */
IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr])
  BEGIN
    IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNr] IS NULL)) >
       (SELECT COUNT(*) 
            FROM GeschäftsvorfallPosition, inserted
            WHERE [GeschäftsvorfallPosition].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsvorfallPosition].[VorfallNr]=inserted.[VorfallNr])
      BEGIN
        RAISERROR (55556, 10, 1, 'VorfallPositionBezugAufVorfallPosition', 'GeschäftsvorfallPosition')
        ROLLBACK TRANSACTION
        RETURN
      END
  END

4.
ALTER TRIGGER [dbo].[GeschäftsvorfallPosition_Update] ON [dbo].[GeschäftsvorfallPosition] FOR UPDATE AS 
DECLARE @GeschäftsvorfallPositionCount Int
DECLARE @iVorfallKürzel VarChar(10), @dVorfallKürzel VarChar(10), @iVorfallNr VarChar(8), @dVorfallNr VarChar(8), @iArbeitsPlatz VarChar(2), @dArbeitsPlatz VarChar(2)
DECLARE @iPositionNummer int, @dPositionNummer int
SET @GeschäftsvorfallPositionCount = @@RowCount
SET NOCOUNT ON
IF @GeschäftsvorfallPositionCount>1
  BEGIN
    IF Not((Update([VorfallKürzel]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallKürzel])=@GeschäftsvorfallPositionCount)) OR (Update([VorfallNr]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [VorfallNr])=@GeschäftsvorfallPositionCount)) OR (Update([ArbeitsPlatz]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [ArbeitsPlatz])=@GeschäftsvorfallPositionCount)) OR (Update([PositionNummer]) AND NOT((SELECT TOP 1 COUNT(*) FROM inserted GROUP BY [PositionNummer])=@GeschäftsvorfallPositionCount)))
      BEGIN
        IF UPDATE([PositionNummer]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[PositionNummer] FROM inserted, deleted WHERE inserted.[PositionNummer]<>deleted.[PositionNummer]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iPositionNummer=[PositionNummer] FROM inserted
            /* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
            UPDATE [VorfallPositionBezugAufVorfallPosition]
                SET [VorfallPositionBezugAufVorfallPosition].[PositionNr]=@iPositionNummer
                FROM VorfallPositionBezugAufVorfallPosition, deleted 
                WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'RechnungsKontrollePosition' */
            UPDATE [RechnungsKontrollePosition]
                SET [RechnungsKontrollePosition].[PositionNr]=@iPositionNummer
                FROM RechnungsKontrollePosition, deleted 
                WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
            /* CASCADES UPDATE to 'Filialaufteilung' */
            UPDATE [Filialaufteilung]
                SET [Filialaufteilung].[PositionNr]=@iPositionNummer
                FROM Filialaufteilung, deleted 
                WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
          END
        IF UPDATE([ArbeitsPlatz]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[ArbeitsPlatz] FROM inserted, deleted WHERE inserted.[ArbeitsPlatz]<>deleted.[ArbeitsPlatz]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iArbeitsPlatz=[ArbeitsPlatz] FROM inserted
            /* CASCADES UPDATE to 'Filialaufteilung' */
            UPDATE [Filialaufteilung]
                SET [Filialaufteilung].[ArbeitsPlatz]=@iArbeitsPlatz
                FROM Filialaufteilung, deleted 
                WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
          END
        IF UPDATE([VorfallNr]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallNr] FROM inserted, deleted WHERE inserted.[VorfallNr]<>deleted.[VorfallNr]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
            /* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
            UPDATE [VorfallPositionBezugAufVorfallPosition]
                SET [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=@iVorfallNr
                FROM VorfallPositionBezugAufVorfallPosition, deleted 
                WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'RechnungsKontrollePosition' */
            UPDATE [RechnungsKontrollePosition]
                SET [RechnungsKontrollePosition].[VorfallNr]=@iVorfallNr
                FROM RechnungsKontrollePosition, deleted 
                WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
            /* CASCADES UPDATE to 'Filialaufteilung' */
            UPDATE [Filialaufteilung]
                SET [Filialaufteilung].[VorfallNr]=@iVorfallNr
                FROM Filialaufteilung, deleted 
                WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
          END
        IF UPDATE([VorfallKürzel]) AND (SELECT COUNT(*) FROM (SELECT TOP 1 inserted.[VorfallKürzel] FROM inserted, deleted WHERE inserted.[VorfallKürzel]<>deleted.[VorfallKürzel]) AS TblCnt)>0
          BEGIN
            SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
            /* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
            UPDATE [VorfallPositionBezugAufVorfallPosition]
                SET [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=@iVorfallKürzel
                FROM VorfallPositionBezugAufVorfallPosition, deleted 
                WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
            /* CASCADES UPDATE to 'RechnungsKontrollePosition' */
            UPDATE [RechnungsKontrollePosition]
                SET [RechnungsKontrollePosition].[VorfallKürzel]=@iVorfallKürzel
                FROM RechnungsKontrollePosition, deleted 
                WHERE [RechnungsKontrollePosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [RechnungsKontrollePosition].[VorfallNr]=deleted.[VorfallNr] AND [RechnungsKontrollePosition].[PositionNr]=deleted.[PositionNummer]
            /* CASCADES UPDATE to 'Filialaufteilung' */
            UPDATE [Filialaufteilung]
                SET [Filialaufteilung].[VorfallKürzel]=@iVorfallKürzel
                FROM Filialaufteilung, deleted 
                WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
          END
      END
     ELSE
      BEGIN
        IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz]) OR UPDATE([PositionNummer])
          BEGIN
            RAISERROR (55558, 10, 1, 'GeschäftsvorfallPosition')
            ROLLBACK TRANSACTION
            RETURN
          END
      END
  END
ELSE
  BEGIN
    SELECT TOP 1 @iVorfallKürzel=[VorfallKürzel] FROM inserted
    SELECT TOP 1 @iVorfallNr=[VorfallNr] FROM inserted
    SELECT TOP 1 @iArbeitsPlatz=[ArbeitsPlatz] FROM inserted
    SELECT TOP 1 @iPositionNummer=[PositionNummer] FROM inserted
    IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz]) OR UPDATE([PositionNummer])
      BEGIN
        /* CASCADES UPDATE to 'VorfallPositionBezugAufVorfallPosition' */
        UPDATE [VorfallPositionBezugAufVorfallPosition]
            SET [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=@iVorfallKürzel, [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=@iVorfallNr
            FROM [VorfallPositionBezugAufVorfallPosition], deleted 
            WHERE [VorfallPositionBezugAufVorfallPosition].[VorfallKürzel]=deleted.[VorfallKürzel] AND [VorfallPositionBezugAufVorfallPosition].[VorfallNr]=deleted.[VorfallNr]
        /* CASCADES UPDATE to 'Filialaufteilung' */
        UPDATE [Filialaufteilung]
            SET [Filialaufteilung].[VorfallKürzel]=@iVorfallKürzel, [Filialaufteilung].[VorfallNr]=@iVorfallNr, [Filialaufteilung].[ArbeitsPlatz]=@iArbeitsPlatz, [Filialaufteilung].[PositionNr]=@iPositionNummer
            FROM [Filialaufteilung], deleted 
            WHERE [Filialaufteilung].[VorfallKürzel]=deleted.[VorfallKürzel] AND [Filialaufteilung].[VorfallNr]=deleted.[VorfallNr] AND [Filialaufteilung].[ArbeitsPlatz]=deleted.[ArbeitsPlatz] AND [Filialaufteilung].[PositionNr]=deleted.[PositionNummer]
      END
  END
/* PREVENT UPDATES if no matching key in 'Mitarbeiter' */
IF (UPDATE([MitarbeiterKürzel]) AND (SELECT COUNT(*) FROM inserted WHERE [MitarbeiterKürzel] IS NOT NULL)>0)
  BEGIN
    IF (SELECT COUNT(*) FROM inserted WHERE NOT([MitarbeiterKürzel] IS NULL)) !=
       (SELECT COUNT(*) 
            FROM Mitarbeiter, inserted
            WHERE 
.[MitarbeiterKürzel]=inserted.[MitarbeiterKürzel]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Mitarbeiter') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Filialen' */ IF (UPDATE([FilialNummer]) AND (SELECT COUNT(*) FROM inserted WHERE [FilialNummer] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([FilialNummer] IS NULL)) != (SELECT COUNT(*) FROM Filialen, inserted WHERE [Filialen].[Filialnummer]=inserted.[FilialNummer]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Filialen') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Adressen' */ IF (UPDATE([KorrNr]) AND (SELECT COUNT(*) FROM inserted WHERE [KorrNr] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([KorrNr] IS NULL)) != (SELECT COUNT(*) FROM Adressen, inserted WHERE [Adressen].[KorrNr]=inserted.[KorrNr]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Adressen') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Mehrwertsteuer' */ IF (UPDATE([MwStSatzNr]) AND (SELECT COUNT(*) FROM inserted WHERE [MwStSatzNr] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([MwStSatzNr] IS NULL)) != (SELECT COUNT(*) FROM Mehrwertsteuer, inserted WHERE [Mehrwertsteuer].[MwStSatzNr]=inserted.[MwStSatzNr]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Mehrwertsteuer') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'GeschäftsVorfall' */ IF UPDATE([VorfallKürzel]) OR UPDATE([VorfallNr]) OR UPDATE([ArbeitsPlatz]) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([VorfallKürzel] IS NULL) AND NOT([VorfallNr] IS NULL) AND NOT([ArbeitsPlatz] IS NULL)) != (SELECT COUNT(*) FROM GeschäftsVorfall, inserted WHERE [GeschäftsVorfall].[VorfallKürzel]=inserted.[VorfallKürzel] AND [GeschäftsVorfall].[VorfallNr]=inserted.[VorfallNr] AND [GeschäftsVorfall].[Arbeitsplatz]=inserted.[ArbeitsPlatz]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'GeschäftsVorfall') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'HandelsArtikel' */ IF (UPDATE([ArtikelNr]) AND (SELECT COUNT(*) FROM inserted WHERE [ArtikelNr] IS NOT NULL)>0) OR (UPDATE([Einheit]) AND (SELECT COUNT(*) FROM inserted WHERE [Einheit] IS NOT NULL)>0) OR (UPDATE([Farbe]) AND (SELECT COUNT(*) FROM inserted WHERE [Farbe] IS NOT NULL)>0) OR (UPDATE([Groesse]) AND (SELECT COUNT(*) FROM inserted WHERE [Groesse] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([ArtikelNr] IS NULL) AND NOT([Einheit] IS NULL) AND NOT([Farbe] IS NULL) AND NOT([Groesse] IS NULL)) != (SELECT COUNT(*) FROM HandelsArtikel, inserted WHERE [HandelsArtikel].[ArtikelNr]=inserted.[ArtikelNr] AND [HandelsArtikel].[Einheit]=inserted.[Einheit] AND [HandelsArtikel].[Farbe]=inserted.[Farbe] AND [HandelsArtikel].[Grösse]=inserted.[Groesse]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'HandelsArtikel') ROLLBACK TRANSACTION RETURN END END /* PREVENT UPDATES if no matching key in 'Sammeltext' */ IF (UPDATE([SammelText]) AND (SELECT COUNT(*) FROM inserted WHERE [SammelText] IS NOT NULL)>0) BEGIN IF (SELECT COUNT(*) FROM inserted WHERE NOT([SammelText] IS NULL)) != (SELECT COUNT(*) FROM Sammeltext, inserted WHERE [Sammeltext].[lfdNr]=inserted.[SammelText]) BEGIN RAISERROR (55556, 10, 1, 'GeschäftsvorfallPosition', 'Sammeltext') ROLLBACK TRANSACTION RETURN END END
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
9 Jahre 5 Monate her - 9 Jahre 5 Monate her #609 von toja
o.g. Fehler ist mit Version 5.7.1 behoben

Bitte Anmelden oder Registrieren um der Konversation beizutreten.