Sql_server中的Go标识
在写Sql脚本时总是会遇到go标识,也没有个明确的解释。
官方解释
Go: 官方说法是:GO只是SQL Server管理器(SSMS)中用来提交T-SQL语句的一个标志。
这几个字我都认识,但是绷组合到一起就感觉说的不是人话。
实际的作用
-
一个(段)脚本结束的标识,下面的内容不再与上面的内容有关系。相当于是一个新会话。
示例:DECLARE @x INT; SET @x = 2; SELECT @x; ****************** 输出结果: 2 ##### 添加Go DECLARE @x INT; SET @x = 2; Go SELECT @x; ****************** 输出结果: Error: Procedure , Line 0 必须声明标量变量 "@x"。 这就说明,添加Go后,后面的 @x变量 不再是前面声明的变量,Go后面相当于一个新的会话。
-
设置前面脚本提交的次数。
示例:
SELECT 2; Go 2; ****************** 输出结果: 2 2 (注意: 仅在SMSS工具中有效。) GO 语句后面跟数字代表提交的次数。
总结:
Go有两个作用,1. 作为结束标识。 2. 设置提交次数(仅smss中有效)。
GO不是标准SQL语句,甚至不是T-SQL语句。它只是SQL Server管理器(SSMS)中用来提交T-SQL语句的一个标志。你可以在SSMS中任意指定这个提交标志。SSMS->工具->选项->查询执行->SQL Server->批分隔符中指定这个提交标志。