GO
non è in realtà un comando T-SQL. Il GO
comando è stato introdotto dagli strumenti Microsoft come un modo per separare le istruzioni batch come la fine di una stored procedure. GO
è supportato dagli strumenti dello stack Microsoft SQL ma non fa formalmente parte di altri strumenti.
Non puoi inserire un GO
in una stringa di SQL e inviarlo come parte di un oggetto comando ADO.NET poiché SQL stesso non comprende il termine. Un altro modo per dimostrarlo è con il profiler:imposta alcune istruzioni che usano GO
in Query Analyzer/Management Studio e quindi eseguire il profiler durante l'esecuzione. Vedrai che vengono inviati come comandi separati al server.
Il punto e virgola viene utilizzato per indicare la fine di un'istruzione stessa, non necessariamente un intero batch.
http://msdn.microsoft.com/en-us/library/ms188037 .aspx