可能重复:
What is the use of GO in SQL Server Management Studio?
案例 - 1没有GO
Update Table
Set Columns = 'Value'
Where Id = 1
Update Table
Set Columns = 'Value'
Where Id = 2
案例 - 2使用GO
Update Table
Set Columns = 'Value'
Where Id = 1
GO
Update Table
Set Columns = 'Value'
Where Id = 2
查询
哪个应该是首选的,为什么?
答案 0 :(得分:0)
唯一的区别 - 第一个查询从第二个开始在一个回合中运行 - 在转弯时。 GO分隔符不是服务器命令,它只是一个批处理分隔符,应由客户端处理。
这意味着 - 由于1回合查询,第1次查询效果更好
答案 1 :(得分:0)
请参阅下面的网址,它可能对您有帮助。
http://msdn.microsoft.com/en-us/library/ms188037.aspx声明:
GO不是Transact-SQL语句;这是一个被公认的命令 sqlcmd和osql实用程序以及SQL Server Management Studio代码 编辑器。
SQL Server实用程序将GO解释为应发送的信号 当前批处理的Transact-SQL语句到SQL的一个实例 服务器。当前批次的陈述由所有陈述组成 自上次GO开始,或自特别会议开始以来或 脚本,如果这是第一个GO。
Transact-SQL语句不能与GO命令占用同一行。 但是,该行可以包含注释。
用户必须遵守批次规则。例如,任何执行 批处理中的第一个语句必须包含后的存储过程 EXECUTE关键字。本地(用户定义)变量的范围是 限制为批处理,并且在GO命令后无法引用。
答案 2 :(得分:0)
案例1 - 当选择2不是该部分且明确与该存储过程分离时
Create proc abc
as
select 1
GO
select 2
案例2 - 当选择2不是存储过程的一部分时,由于缺少GO而错误地成为存储过程的一部分
Create proc abc
as
select 1
select 2
Create proc abc
as
select 1
select 2