Overblog Folge diesem Blog
Edit post Administration Create my blog
Blog von Olaf Helper

Iteration per GO statt per WHILE Schleife

1. Oktober 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

Schleifen zum Abarbeiten von Batches bildet man in T-SQL mittels einer WHILE Schleife ab.

 

Ab Microsoft SQL Server 2005 hat man den Batchtrenner, was per Default ja das GO ist, um einen Parameter für die Anzahl der Durchläufe anzugeben.

Also: Schreibe ich GO 3, wird der Batch drei Mal durchlaufen.

 

Demo:

 

 SET NOCOUNT ON; 
 GO 
 -- Bisher: per While Schleife 
 DECLARE @loop smallint = 0; 
 WHILE @loop < 3 
 BEGIN 
  SELECT GETDATE() AS DatumZeit; 
  SET @loop += 1; 
 END 
 GO 
   
 -- Ab Microsoft SQL Server 2005 
 -- Interation per Go + Anzahl Loops 
 SELECT GETDATE() AS DatumZeit; 
 GO 3  -- <= heisst: Führe den gesamten Batch 3 mal aus 

 

Das bekommt man dann nach der Ausführung im SSMS entsprechend gemeldet:

 

 Beginning execution loop 
 DatumZeit 
 ----------------------- 
 2009-10-01 20:24:12.717 
   
 DatumZeit 
 ----------------------- 
 2009-10-01 20:24:12.747 
   
 DatumZeit 
 ----------------------- 
 2009-10-01 20:24:12.763 
   
 Batch execution completed 3 times. 

Diesen Post teilen

Repost 0
Um über die neuesten Artikel informiert zu werden, abonnieren:

Kommentiere diesen Post

Ebis 10/02/2009 10:59


Hi Olaf,

Das ging (und geht) auch schon bei SQL-Server 2005...

Grüße Ebi


Olaf Helper 10/02/2009 19:07


Dieser Versions-Wirr-Warr, ich kann mir nicht so genau merken, wann welches Feature hinzugekommen.
Hast recht, ist korrigiert.