Hm, da möchte ich den hinterlassenen Eindruck doch etwas relativieren:

SQL ist grundsätzlich flexibler als klassische AS400-Programme; SQL-stored-Procedures und Functions sind nicht starr mit einem bestimmten Format der Datenbankdateien verbunden, sie verwenden keinen LevelCheck, um zu prüfen, ob sich die Datei vielleicht geändert hat. Stattdessen mappen sie jedes Feld, bei Update, bei Select, bei Delete, und wenn Du beim Insert die Feldliste angibst, auch da ...

Interne Variable sind vor allem Zähler und Arbeitsfelder. Die sollte man nicht zu klein dimensionieren. Knauserige Definitionen wird man heute aber eh nicht mehr wünschen, eher großzügigere. Der Sprung wird also eher von short auf long oder double sein, und nicht selten von 12 auf 13 Ziffern vor dem Komma.

Neue Felder sind für SQL in der Regel auch kein Problem, wenn Du diese in der Tabelle mit einem vernüftigen Defaultwert definierst. Du mußt sie beim Insert dann nämlich nicht mehr angeben.

Fazit: ich habe etwas Erfahrung mit SQL-Programmierung, und mit Tabellen, die von den Kollegen ständig erweitert wurden. Selten mußte ich meine Programme nochmal anpassen. Meistens habe ich sie nicht einmal neu kompilieren müssen (create procedure oder create function)

Was man vermeiden sollte, das sind Umbenennungen von Feldern. Aber selbst das ist kein großes Problem, wenn die Namen signifikant genug sind, um ihr Vorkommen mit nem globalen Scan suchen und ersetzen können, z.B. mit PDM