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.
Qualcosa 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