Publications

GO ed escuzioni multiple della stessa istruzione

Davide Mauri

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.

Una colonna IDENTITY ammette valori duplicati? e valori negativi?

Davide Mauri

Sono due tipici dubbi, il secondo dei quali è causato, probabilmente, dal fatto che una colonna IDENTITY viene usata solitamente come PRIMARY KEY di tabella, assicurando come tale l’univocità dei valori in colonna.

La risposta è “Sì” ad entrambe le domande. Nel caso di valori negativi fanno eccezione ovviamente le colonne di tipo TINYINT (che ammette numeri interi da 0 a 255). Inoltre, il fatto di ammettere valori negativi, può tornare utile in quanto possiamo ottimizzare l’utilizzo del range di valori ammessi dal tipo di dato con cui definiamo la colonna. Per esempio, per un SMALLINT (che occupa 2 byte e ammette da -32.768 a 32.767) possiamo “sfruttare” completamente tale range partendo proprio dal suo limite inferiore di -32.768