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.
4.
Code:
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