【问题标题】:What's the meaning of the GO-statement in TSQLSQL中的GO语句是什么意思
【发布时间】:2017-10-11 23:40:24
【问题描述】:

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

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

请详细说明。

【问题讨论】:

标签: sql tsql


【解决方案1】:

它是一个批处理终止器

这会坏掉

declare @i int
set @i =5

declare @i int
set @i =6

Select @i

消息 134,级别 15,状态 1,第 5 行 变量名“@i”已被声明。变量名称在查询批处理或存储过程中必须是唯一的。

这会起作用

declare @i int
set @i =5

go
declare @i int
set @i =6

Select @i

【讨论】:

    【解决方案2】:

    它结束了批处理。

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

    【讨论】:

    • 另一个有效且常见的地方是 TSQL 中的 ALTER VIEW 命令。 'ALTER VIEW' must be the only statement in the batch。即,在 ALTER VIEW 之前和之后需要一个 GO
    【解决方案3】:

    顺便说一句。它实际上不是 TSQL 命令。它只是被 Microsoft DB 工具用来分隔两批命令。

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

    这种区别很重要的主要地方是,如果您尝试通过代码的数据库连接(例如通过 ADO.NET)在查询中使用它们,SQL 将阻塞 GO 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2013-07-13
      • 2011-11-18
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多