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