T-SQL中GO关键字
2017-10-24 12:36
591 查看
go 是SYBASE和SQL Server中用来表示事务结束,提交并确认结果,相当于ORACLE的Commit
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。
局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
GO代表一个批处理的结束;
你可以把每个GO之间的语句当成是一句SQL;
GO不是标准的语法,只是查询分析器为了区分多个批处理而设的分隔符而已;
具体的如下
CREATE TABLE TableName
(
ColumnName1 DataType,
ColumnName2 DataType
)
GO
INSERT INTO TableName(ColumnName1,ColumnName2)
VALUES (Value1,Value2)
GO
在解析和执行的时候这一篇T-SQL脚本其实是被认为是两个独立的部分,只不过他们使用同一个Session
举一个最有说服力的例子
DECLARE @Parameter1 INT
DECLARE @Parameter2 INT
SET @Parameter1 = 1
SET @Parameter2 = 2
PRINT @Parameter1 + @Parameter2
GO
-- Result: 3
当你在使用的变量以前插入了一个GO,这个GO之前脚本会作为一个提交部分,而这个GO以后的部分会作为第二个部分进行提交
P.S. 这里说的提交仅是提交SQL代码,不会提交"GO"这个关键字
我们还需要留意以下特殊注意事项:
1 与GO同一行,GO前边不能包含任何SQL
2 与GO同一行,GO后边可以跟 -- 注释,但是不能跟 /**/ 注释!
下边再说一个GO的特性,但是我们大家都不常用,或者说我们由于GO太常见而忽略掉了它的这个重要的特性,就是 -- GO是可以代替我们做重复操作的!!
-- INSERT TABLE TableName(Column1, Column2)
-- VALUES (Value1, Value2)
-- GO [Number] 这里的Number必须是正整数!
INSERT TABLE TableName(Column1, Column2)
VALUES (Value1, Value2)
GO 100
-- 在这里我们会看到GO加了100次重复操作,
-- 同时在SSMS窗口智能感知的时候会用红线告诉我们语法不对
-- 但是请放心执行,他100%能通过,同时必定为你运行100次
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。
局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
GO代表一个批处理的结束;
你可以把每个GO之间的语句当成是一句SQL;
GO不是标准的语法,只是查询分析器为了区分多个批处理而设的分隔符而已;
具体的如下
CREATE TABLE TableName
(
ColumnName1 DataType,
ColumnName2 DataType
)
GO
INSERT INTO TableName(ColumnName1,ColumnName2)
VALUES (Value1,Value2)
GO
在解析和执行的时候这一篇T-SQL脚本其实是被认为是两个独立的部分,只不过他们使用同一个Session
举一个最有说服力的例子
DECLARE @Parameter1 INT
DECLARE @Parameter2 INT
SET @Parameter1 = 1
SET @Parameter2 = 2
PRINT @Parameter1 + @Parameter2
GO
-- Result: 3
当你在使用的变量以前插入了一个GO,这个GO之前脚本会作为一个提交部分,而这个GO以后的部分会作为第二个部分进行提交
P.S. 这里说的提交仅是提交SQL代码,不会提交"GO"这个关键字
我们还需要留意以下特殊注意事项:
1 与GO同一行,GO前边不能包含任何SQL
2 与GO同一行,GO后边可以跟 -- 注释,但是不能跟 /**/ 注释!
下边再说一个GO的特性,但是我们大家都不常用,或者说我们由于GO太常见而忽略掉了它的这个重要的特性,就是 -- GO是可以代替我们做重复操作的!!
-- INSERT TABLE TableName(Column1, Column2)
-- VALUES (Value1, Value2)
-- GO [Number] 这里的Number必须是正整数!
INSERT TABLE TableName(Column1, Column2)
VALUES (Value1, Value2)
GO 100
-- 在这里我们会看到GO加了100次重复操作,
-- 同时在SSMS窗口智能感知的时候会用红线告诉我们语法不对
-- 但是请放心执行,他100%能通过,同时必定为你运行100次
相关文章推荐
- T-SQL 关键字 GO
- T-SQL中GO关键字
- sql连接查询中,where关键字的位置
- 用SQL语句查找包含有某个关键字的存储过程、触发器、函数等(仅适用MS SQL SERVER)
- go defer关键字
- SQL--查找某个内容有没有非法关键字
- 注意你写的sql语句和数据库本身的关键字重名
- SQL常用的一些关键字
- sql中表名中有于关键字重复的命名
- sql关键字 With
- T-SQL动态查询(2)——关键字查询
- SQL RIGHT JOIN 关键字 高级编程
- SQL中GO的用法
- sql关键字
- SQL中over 关键字(转载)
- SQL 的 IFNULL 关键字的用法
- Go实战--golang中使用echo和MySQL搭建api(labstack/echo、go-sql-driver/mysql)
- go语言关键字图示
- 32.笔记go语言——range关键字
- w3c上关于 SQL LEFT JOIN 关键字 这一章的错误