SQL Server Management Studio总是插入一个GO命令时,我创建一个查询使用右键单击“脚本作为”菜单。为什么?GO到底是做什么的?


当前回答

只是为了添加到现有的答案,当你创建视图时,你必须使用go将这些命令分成批量,否则你会得到错误'CREATE VIEW'必须是批处理中唯一的语句。例如,如果没有go,您将无法执行下面的sql脚本

create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go

select * from MyView1
select * from MyView2

其他回答

Use herDatabase
GO ; 

代码表示执行GO标记上面的指令。 我的默认数据库是myDatabase,所以不是使用myDatabase GO,并使当前查询使用她的数据库

GO不是SQL关键字。

它是客户端工具(如SSMS)使用的批处理分隔符,用于将整个脚本分解为批处理

之前回答过几次…示例1

只是为了添加到现有的答案,当你创建视图时,你必须使用go将这些命令分成批量,否则你会得到错误'CREATE VIEW'必须是批处理中唯一的语句。例如,如果没有go,您将无法执行下面的sql脚本

create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go

select * from MyView1
select * from MyView2

从Management Studio 2005开始,你似乎可以使用带有int参数的GO,比如:

INSERT INTO mytable DEFAULT VALUES
GO 10

上面将在我的表中插入10行。一般来说,GO会执行n次相关的sql命令。

GO命令不是Transact-SQL语句,而是几个MS实用程序(包括SQL Server Management Studio代码编辑器)可以识别的特殊命令。

GO命令用于将SQL命令分组,并一起发送到服务器。批处理中包含的命令,即自上一个GO命令或会话开始以来的命令集,必须在逻辑上一致。例如,您不能在一个批处理中定义一个变量,然后在另一个批处理中使用它,因为变量的范围仅限于定义它的批处理。

欲了解更多信息,请参见http://msdn.microsoft.com/en-us/library/ms188037.aspx。