Thomas Bandt

Über mich | Kontakt | Archiv

Rekursive Abfragen am SQL Server 2005

Irgendwann kommt der Punkt, an dem man sich als Entwickler mit Rekursionen befassen muss - ein gängiger Anwendungsfall ist zum Beispiel eine Kategorie-Hierarchie für die Navigation auf einer Webseite. Wollte man bisher, d.h. mit Access oder SQL Server 2000, den verschachtelten Baum aus der Datenbank holen, musste man dafür entweder einen Handstand per T-SQL machen, oder den Aufwand eben im Code, d.h. außerhalb der Datenbank betreiben - und einfach war das wahrlich nicht.

Dazu kommt, dass das Ganze auch nicht wirklich performant ist - wofür es schon ne Weile die Alternative der Nested Sets gibt, die aber unheimlich kompliziert ist - zumindest für Nicht-Mathematiker.

Lange Rede, kurzer Sinn, mit dem SQL Server 2005 lässt sich das Ganze nun um Welten schneller, und unkomplizierter lösen: per CTE - den "Common Table Expressions".

Ich muss zugeben, dass für mich Datenbanken immer nur Mittel zum Zweck sind, und ich nie besonders viel Lust hatte, mich mit der ekeligen T-SQL-Syntax anzufreunden, aber hiermit habe ich eben in 10 Minuten mein gewünschtes Ergebnis erzielt ... einfacher geht's nicht :-).

Kommentare

  1. Thomas goes .NET schrieb am Freitag, 17. November 2006 23:17:00 Uhr:

    So, einige der Anregungen habe ich aufgegriffen und gestern Nacht bzw. gerade eben noch umgesetzt:

    Bei den Links zu den Kommentaren steht nun auch die Zahl der vorhandenen Kommentare mit dabei.
    Das Layout funktioniert nun auch im Internet Explor ...


« Zurück  |  Weiter »