1 学习GO的用法

参考:
http://www.cnblogs.com/kissdodog/archive/2013/06/30/3163880.html
https://technet.microsoft.com/zh-cn/library/ms175502(v=sql.105).aspx
https://technet.microsoft.com/zh-cn/library/ms189267(v=sql.105).aspx
https://msdn.microsoft.com/en-us/library/ms188037.aspx

 

  • Go是一个命令,用于标识一个批处理的结束
  • Syntax: Go[count]

    count是一个正整数,用于表示该批处理的执行次数

  • Remark:

    1.Go并不是Transact-SQL语句,它是供salcmd和osql实用工具以及SSMS代码编辑器识别的命令。SQL工具遇到Go时,会把由该“Go”标识的批处理发送给SQL实例。
    2.Transact-SQL语句不能跟Go命令同行。否则无法识别。注释的话没问题。
    3.必须遵循批处理的规则:1.调用存储过程,除了首行外,其他行必须加EXECUTE关键字  2. 局部变量不能超出批处理的作用域使用
    4.一个批处理中的所有语句,会被编译成一个执行计划。
    5.基于ODBC或者OLE DB APIs 的应用程序不能发送包含Go的sql语句,否则会报错。因为GO并不属于Transact-SQL
    6.Go后面不能使用分好’;‘

2 理解批处理

  • 批处理是作为一个逻辑单元的多条T-SQL语句的集合,这些语句被同时发送到SQL Server。如果其中一条语句在编译时出错,该批处理不会被执行。如果在运行时一条语句出错,后面的语句不会执行。但是之前的语句已经执行,并产生结果。
  • 可以通过Go命令分割批处理,从而可以一次执行多个批处理。每个批处理被单独处理,所以一个批处理出错并不会影响其他批处理。
  • 如果后面的批处理依赖于前面的批处理,则前面的错误回事有依赖的批处理同样出错
  • 何时使用批处理:当脚本中的事情必须分开执行或者存在执行的前后关系时,使用批处理。

    1.CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE SCHEMA、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其他语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其他语句将被解释为第一个 CREATE 语句定义的一部分。使用这些语句需要用GO进行分隔。
    2.不能在同一个批处理中更改表,然后引用新列。
    3.如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。

 

posted on 2016-03-13 19:14  哈哈娃以  阅读(360)  评论(0)    收藏  举报