niedziela, 5 stycznia 2014

GO zamiast pętli

Tym razem kilka słów o tym do czego można wykorzystać słowo kluczowe GO, poza oddzielaniem paczek zapytań.

Jeżeli po słowie GO będzie występowała liczba n, to oznaczać bedzie ona że poprzedajaca paczka zapytań powinna się wykonać n ilość razy.

Właściwość ta może być wykorzystana np do wygenerowania pomocniczej tabeli z liczbami. Załóżmy, że do jakiegoś celu potrzebne są kolejna lata zaczynając od roku 2000.

Cel może być osiągnięty np za pomocą pętli while
   1: use tempdb
   2: go
   3:  
   4: create table #years (
   5:     [year] int identity(2000,1) not null
   6: );
   7: go
   8:  
   9: declare @i int
  10: set @i = 2000
  11:  
  12: while @i < 2014
  13: begin
  14:     insert into #years default values;
  15:     set @i = @@identity;
  16: end
  17:  
  18: select [year] from #years;
  19: go
  20:  
  21: drop table #years;
  22: go
Lub też trochę prościej, z użyciem po prostu GO z podaniem liczby wykonań
   1: use tempdb
   2: go
   3:  
   4: create table #years (
   5:     [year] int identity(2000,1) not null
   6: );
   7: go
   8:  
   9: insert into #years default values;
  10: go 15
  11:  
  12: select [year] from #years;
  13: go
  14:  
  15: drop table #years;
  16: go
Wykorzystując GO i IDENTITY można w łatwy sposób wygenerować także ciąg liczb parzystych lub nieparzystych.

Prześlij komentarz