Montag, Januar 11, 2010

Sequenzgenerator

in der Reihe "Wie sag ich's dem SQL Server?" hier ein Beitrag zum Thema Sequenzgenerierung:

Oracle:

SQL> select rownum
  2    from dual
  3  connect by level <= 10;

    ROWNUM
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

9 Zeilen ausgewählt.


MS SQL

With NumberSequence 
as
( Select 1 as Number
   union all
  Select Number + 1
    from NumberSequence
   where Number < 10
 )
Select * From NumberSequence

1
2
3
4
5
6
7
8
9
10

Wie bei den hierarchischen Queries verwendet Microsoft also auch hier ein rekursives Verfahren, das zwar etwas umständlicher ist als die Oracle-Lösung, aber durchaus nachvollziehbar. Eine ausführlichere Erläuterung zum Thema findet sich hier.

Keine Kommentare:

Kommentar veröffentlichen