GO
no es en realidad un comando T-SQL. El GO
El comando fue introducido por las herramientas de Microsoft como una forma de separar declaraciones por lotes, como el final de un procedimiento almacenado. GO
es compatible con las herramientas de pila de Microsoft SQL, pero no forma parte formalmente de otras herramientas.
No puedes poner un GO
en una cadena de SQL y enviarlo como parte de un objeto de comando ADO.NET ya que el propio SQL no entiende el término. Otra forma de demostrar esto es con el generador de perfiles:configure algunas declaraciones que usan GO
en Query Analyzer/Management Studio y luego ejecute el generador de perfiles cuando lo ejecute. Verá que se emiten como comandos separados para el servidor.
El punto y coma se usa para indicar el final de una declaración en sí, no necesariamente un lote completo.
http://msdn.microsoft.com/en-us/library/ms188037 .aspx