SQL中GO语句的含义是什么?

时间:2010-05-25 13:59:11

标签: sql tsql

我是TSQL的新手,想知道GO语句的真正含义。对我来说,它似乎只是在那里似乎适合。

我想它以某种方式告诉sql server运行前一个语句?如果您根本不使用它们会发生什么?如果我不使用GO,有人可以举例说明语句会中断吗?

请详细说明。

3 个答案:

答案 0 :(得分:14)

这是批量终结者

这会打破

declare @i int
set @i =5

declare @i int
set @i =6

Select @i

Msg 134,Level 15,State 1,Line 5 变量名'@i'已经声明。变量名在查询批处理或存储过程中必须是唯一的。

这将起作用

declare @i int
set @i =5

go
declare @i int
set @i =6

Select @i

答案 1 :(得分:10)

结束批次。

很少需要它,并且使用频率远远超过它应该使用的频率。一个有效的地方是存储过程编程,你首先检查proc是否存在,如果不存在则删除它。然后使用go语句结束批处理,因为create proc语句必须是批处理的第一个语句。

答案 2 :(得分:6)

顺便说一下。它实际上不是TSQL命令。它仅由Microsoft DB工具用于分隔两批命令。

实际上,如果您想在Optionss..Batch分离首选项设置下,可以将其配置为SSMS中的其他单词。

这一区别非常重要的一点是,如果您尝试通过代码中的数据库连接(例如通过ADO.NET)在查询中使用它们,那么SQL将会阻塞GO语句。