Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server:è necessario utilizzare le istruzioni GO tra i batch?

Non sono strettamente necessari:sono solo istruzioni per SQL Server Management Studio per eseguire le istruzioni fino a questo punto di tanto in tanto. GO è non una parola chiave T-SQL o altro:è solo un'istruzione che funziona in SSMS.

A volte, hai bisogno di un GO, ad es. se aggiungi una colonna a una tabella e poi vuoi selezionarla di nuovo, devi avere un GO tra l'aggiunta della colonna e la sua query.

Per esempio. se provi a eseguirlo, riceverai errori da SSMS:

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

Risultati in:

Il punto è:SSMS sta cercando di verificare l'intera istruzione in una volta, ma sull'istruzione SELECT, si lamenterà del DateTimeStamp mancante colonna.

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO       

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

Se metti un GO tra le due istruzioni funzionerà, perché SSMS non analizzerà e verificherà l'intera istruzione in anticipo:eseguirà la prima parte, quindi analizzerà solo la seconda (dopo GO ).

Ma a parte situazioni come questa, GO non è quasi mai richiesto.