GO ed escuzioni multiple della stessa istruzione

Il comando GO che utilizziamo per separare in batch le istruzioni TSQL può essere associato ad un valore numerico.
A cosa server tale valore?
A far eseguire N volte le istruzioni contenute nel batch.

Ovvero scrivendo un'istruzione come:

PRINT 'ciao'
GO 3

Otteniamo questo risultato:

Beginning execution loop
ciao
ciao
ciao
Batch execution completed 3 times.

La cosa si fa interessante in tutti quegli scenari in cui abbiamo la necessità di popolare alcune tabelle con dati di test o di prova.
Qualcose del genere:

USE tempdb
GO

CREATE TABLE test
(
idRecord SMALLINT,
dateInsert DATETIME DEFAULT (GETDATE()),
col VARCHAR(35)
)
GO

INSERT test (col) VALUES ('aaa bbb ccc')
GO 1000

SELECT COUNT(1) FROM test
GO

DROP TABLE test
GO

Il risultato:

Batch execution completed 1000 times.

-----------
1000

Published mercoledì 19 settembre 2007 14.43 by abenedetti
Filed under:

Comments

# re: GO ed escuzioni multiple della stessa istruzione

giovedì 20 settembre 2007 9.38 by locuratropical

Ciao bello!

Solo per info aggiuntiva : )

Questo tipo di comportamento il comando GO lo ha solo su SQL2005.

Lo ho appena provato su 2000 e non va.

: )))

Ciao

Ale

print 'ciao'

GO 10

Server: messaggio 170, livello 15, stato 1, riga 2

Riga 2: sintassi non corretta in prossimità di 'go'.

# re: GO ed escuzioni multiple della stessa istruzione

giovedì 20 settembre 2007 10.12 by abenedetti

Ciao Ale!

In realtà se usi SSMS su istanze SQL 2000 va, così come va utilizzando OSQL.

Con EM o Query Analyzer invece, come dici, no...

E' una funzionalità di tool... indipendente dall'engine

# re: GO ed escuzioni multiple della stessa istruzione

giovedì 20 settembre 2007 10.39 by dmauri

Andrea, per favore, mi ri-scrivi questo articolo come "tips"  sul nuovo sito di UGISS? (www2.ugiss.org)....ed aggiungi anche i link a tuoi articoli su MSDN, thanks

# GO ed escuzioni multiple della stessa istruzione

giovedì 20 settembre 2007 20.41 by makka

GO ed escuzioni multiple della stessa istruzione

# Esecuzione multipla di batch sql in Sql Server 2005 « Cosa importa se….

Pingback from  Esecuzione multipla di batch sql in Sql Server 2005 « Cosa importa se….

# GO ed escuzioni multiple della stessa istruzione

mercoledì 10 ottobre 2007 16.30 by makka

Segnalo questo post di Andrea che presenta un'interessante esempio di come sia possibile utilizzare