【问题标题】:What is the purpose of using the GO Statement in SQL Server?在 SQL Server 中使用 GO 语句的目的是什么?
【发布时间】:2020-03-07 06:29:53
【问题描述】:

请问在 SQL Server 中使用“GO”语句的目的是什么?

我知道这是一种将语句分组到一个批次中的方式。但我的问题是为什么我们必须将语句分组?

假设在Oracle数据库中,我们只是一个一个地运行语句并用分号(“;”)分隔。 SQL 语句中的 GO 语句是否具有与“;”相同的功能?在甲骨文中?

感谢您在这里分享一些亮点。

【问题讨论】:

标签: sql-server


【解决方案1】:

https://dba.stackexchange.com/questions/59975/go-after-every-t-sql-statement 的可能重复,特别是这个答案https://dba.stackexchange.com/a/59976

更明确地说,这里是相关的引用:

批处理是一组一个或多个 Transact-SQL 语句同时从应用程序发送到 SQL Server 以供执行。

那是一堆 gooble dee gook 但我的理解是:有时我只能在一个批次中只有一个东西,如果我想将多个东西放在同一个 SQL 文件中,我需要用 GO 包围该语句.

例如,当您在 SQL Server 中创建视图时,

“CREATE VIEW 必须是批处理中的唯一语句”

https://stackoverflow.com/a/27272239/8250038

【讨论】:

  • 这是否意味着Oracle SQL Developer和SQL Server Management Studio在执行具有多个语句的SQL文件时存在差异。 Oracle SQL Developer在相互执行完后会全部发送,而SQL Server如果没有GO语句会一起发送?
  • 我不知道,但看起来你要找的是斜线stackoverflow.com/a/29961618/8250038
【解决方案2】:

GO 是一组命令之间的清晰分隔符。这有点像说“忘记其他一切,完成你开始的事情,并为新事物做准备”。所有变量都将被遗忘,并开始执行新的命令。

请看这里https://sqlhints.com/tag/go-in-sql-server/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2018-08-22
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多