create procedure ueberweisen -- lege Prozedur an
@x int, -- Konto-Nr. zum Belasten
@y int, -- Konto-Nr. fuer Gutschrift
@betrag money -- Ueberweisungsbetrag
as
declare @s money -- lokale Variable
SELECT @s = stand FROM konto -- hole Kontostand nach s
WHERE nr = @x -- von Konto-Nr. x
IF @s < @betrag BEGIN -- falls Konto ueberzogen
INSERT INTO abgelehnt -- notiere den Fehlschlag
VALUES (getdate(), @x, @y, @betrag) -- in der Tabelle abgelehnt
END ELSE
BEGIN
UPDATE konto -- setze in der Tabelle konto
SET stand = stand-@betrag -- neuen Betrag ein
WHERE nr = @x -- fuer Kontonr @x
UPDATE konto -- setze in der Tabelle konto
SET stand = stand+@betrag -- neuen Betrag ein
WHERE nr = @y -- fuer Kontonr @y
INSERT INTO gebucht -- notiere die Ueberweisung
VALUES (getdate(), @x, @y, @betrag) -- in der Tabelle gebucht
END