Hallo MB,
Ich beschränke den möglichen SQL Spagetti Code, so hat man mehrere ab trennbare Statements
Was ist SQL Spaghetti? Eine komplexe Beschreibung der Daten, die Du haben willst? Wenn das die Daten sind, die Du brauchst, dann sind sie es. SQL ist eine WAS-Sprache, keine WIE-Sprache. Spaghetti ist eigenlich eine Eigenschaft von Konstrukten in WIE-Sprachen (z.B. PHP).
Wenn Du deine Zugriffe gerne strukturierter haben möchtest, und eine großen Zugriff in mehrere kleine aufteilst, kann sich das unangenehm auswirken. Wenn der SQL Server auf der gleichen Maschine läuft wie PHP, und wenn die Last im Web gering ist, dann fällt es nicht auf, aber in einer größeren, heftig unter Dampf stehenden Web App sieht das anders aus. Da hat man mehrere technische Schichten: Ein Cluster aus Webservern (HTTP Requeste verstehen und senden), ein Cluster aus App Servern (empfangene Daten verarbeiten und Ergebnis erzeugen), und darunter ein Cluster aus SQL Servern für die Datenhaltung. In einem solchen Umfeld gilt das "chunky, not chatty" Prinzip: möglichst wenige Server-Roundtrips. Weil jeder Hop kostbare Millisekunden frisst.
Ein Programm, das zunächst eine Tabelle XY ausliest, und dann pro Zeile eine weitere SQL Abfrage macht um weitere Daten dazuzuholen, ist in einem solchen Szenario unakzeptabel langsam. Aber du kannst deinem Generator ja die Möglichkeit einbauen, beispielsweise Subselects an den gewünschten Stellen zu injizieren.
Rolf
sumpsi - posui - clusi