在批处理sql语句时,常在语句的结尾加入Go,Go在语句中可以界定一段语句的结尾,如变量的作用范围等。在Go 语句之前加入Return 可以跳出Go 语句段。break可以跳出While 循环。
 GO   执行 

   用信号通知   Microsoft®   SQL   Server™   实用工具一批   Transact-SQL   语句的结束。    

      

   语法    

   GO    

      

   注释    

   GO   不是   Transact-SQL   语句;而是可为   osql   和   isql   实用工具及   SQL   Server   查询分析器识别的命令。    

      

   SQL   Server   实用工具将   GO   解释为应将当前的   Transact-SQL   批处理语句发送给    SQL   Server   的信号。当前批处理语句是自上一   GO   命令后输入的所有语句,若是第一条   GO   命令,则是从特 殊会话或脚本的开始处到这条   GO   命令之间的所有语句。SQL   查询分析器和   osql   及   isql   命令提示实用工具 执行   GO   命令的方式不同。有关更多信息,请参见   osql   实用工具、isql   实用工具和   SQL   查询分析器。       

      

   GO   命令和Transact-SQL   语句不可在同一行上。但在   GO   命令行中可包含注释。    

      

   用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含   EXECUTE   关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在   GO   命令后引用。    

      

   USE   pubs    

   GO    

   DECLARE   @MyMsg   VARCHAR(50)    

   SELECT   @MyMsg   =   'Hello,   World.'    

   GO   --   @MyMsg   is   not   valid   after   this   GO   ends   the   batch.    

      

   --   Yields   an   error   because   @MyMsg   not   declared   in   this   batch.    

   PRINT   @MyMsg    

   GO    

      

   SELECT   @@VERSION;    

   --   Yields   an   error:   Must   be   EXEC   sp_who   if   not   first   statement   in      

   --   batch.    

   sp_who    

   GO    

      

   SQL   Server   应用程序可将多条   Transact-SQL   语句作为一个批处理发给   SQL   Server    去执行。在此批处理中的语句编译成一个执行计划。程序员在   SQL   Server   实用工具中执行特定语句,或生成   Transact- SQL   语句脚本在   SQL   Server   实用工具中运行,用   GO   来标识批处理的结束。    

      

   如果基于   DB-Library、ODBC   或   OLE   DB   APIs   的应用程序试图执行   GO   命令时会收到语法错误。SQL   Server   实用工具永远不会向服务器发送   GO   命令。    

      

   权限    

   GO   是一个不需权限的实用工具命令。可以由任何用户执行。    

      

   示例    

   下面的示例创建两个批处理。第一个批处理只包含一条   USE   pubs   语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因 此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用   GO   命令来做到。    

      

   USE   pubs    

   GO    

   DECLARE   @NmbrAuthors   int    

   SELECT   @NmbrAuthors   =   COUNT(*)    

   FROM   authors    

   PRINT   'The   number   of   authors   as   of   '   +    

               CAST(GETDATE()   AS   char(20))   +   '   is   '   +    

               CAST(@NmbrAuthors   AS   char   (10))    

   GO