可能重复:
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带有GO的Case -2
Update Table
Set Columns = 'Value'
Where Id = 1
GO
Update Table
Set Columns = 'Value'
Where Id = 2查询
哪个应该是首选,为什么呢?
发布于 2012-02-16 06:10:01
我得到了存储过程方面的差异。
案例1-当Select2不是部件并显式地与此存储过程分离时,
Create proc abc
as
select 1
GO
select 2案例2-当Select2不是存储过程的一部分,并且由于缺少GO而错误地成为存储过程的一部分时
Create proc abc
as
select 1
select 2在案例2中,该语言的定义如下。
Create proc abc
as
select 1
select 2发布于 2012-02-16 05:54:51
唯一的区别--第一次查询自第二次查询以来--在第二轮中运行。GO分隔符不是服务器命令,它只是一个批处理分隔符,应该由客户端处理。
这意味着第一次查询的性能更好,因为有一次查询。
发布于 2012-02-16 06:01:48
请参阅下面的url,它可能对您有帮助。
http://msdn.microsoft.com/en-us/library/ms188037.aspx,它声明:
GO不是Transact-SQL语句;它是sqlcmd和osql实用程序以及编辑器所识别的命令。
Server实用程序将GO解释为将当前批Transact-SQL语句发送到Server实例的信号。当前一批语句由自上次运行以来输入的所有语句组成,如果这是第一次执行,则自特设会话或脚本开始以来输入的所有语句。
Transact-SQL语句不能占用与GO命令相同的行。但是,行可以包含注释。
用户必须遵守批次规则。例如,批处理中第一条语句之后存储过程的任何执行都必须包括EXECUTE关键字。本地(用户定义的)变量的作用域仅限于批处理,不能在GO命令之后引用。。
https://stackoverflow.com/questions/9306144
复制相似问题