SQL Server Management Studio总是插入一个GO命令时,我创建一个查询使用右键单击“脚本作为”菜单。为什么?GO到底是做什么的?
当前回答
Use herDatabase
GO ;
代码表示执行GO标记上面的指令。 我的默认数据库是myDatabase,所以不是使用myDatabase GO,并使当前查询使用她的数据库
其他回答
从Management Studio 2005开始,你似乎可以使用带有int参数的GO,比如:
INSERT INTO mytable DEFAULT VALUES
GO 10
上面将在我的表中插入10行。一般来说,GO会执行n次相关的sql命令。
GO意思是让SQL重复这个你在它后面加上的数字。就像用英语说;“嘿,去那里3次。”尝试下面的SQL和结果将呈现表3次。
SELECT * FROM Table
GO 3
Use herDatabase
GO ;
代码表示执行GO标记上面的指令。 我的默认数据库是myDatabase,所以不是使用myDatabase GO,并使当前查询使用她的数据库
它是一个分离查询的命令。如果你在做多次选择,它没有太大的区别,以我为例,主要用途是当我创建脚本时,你需要创建存储过程,然后授予访问或执行它们。例如:
CREATE OR ALTER PROCEDURE dbo.select1
AS
BEGIN
SET NOCOUNT ON
SELECT 1
END
EXEC dbo.select1
它将创建包含所有内容的存储过程,包括EXEC,它将在循环中结束。 GO语句会说,在结束后创建存储过程,然后执行。
CREATE OR ALTER PROCEDURE dbo.select1
AS
BEGIN
SET NOCOUNT ON
SELECT 1
END
GO
EXEC dbo.select1
只是为了添加到现有的答案,当你创建视图时,你必须使用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
推荐文章
- 检查SQL Server登录是否已经存在
- 我如何使用ROW_NUMBER()?
- SQL或者TSQL是图灵完备的吗?
- 如何检查表上持有哪些锁
- SQL Server数据库备份恢复到低版本
- SQL Server:过滤sp_who2的输出
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 如何将SQL Azure数据库复制到本地开发服务器?
- SQL Server 2008不能用新创建的用户登录
- SQL Server中User和Login的区别
- 在参数声明中,varchar(MAX)的大小是多少?
- 数据库性能调优有哪些资源?
- 为两列的组合添加唯一的约束