一尘不染

SQL Server 中的 GO 语句有什么作用?

sql-server

SQL Server的GO语句引起了我极大的好奇心,我真的不知道如何正确使用它。

我注意到无论有没有查询GO都不会返回错误并且似乎工作相同,那么它的目的是什么,我为什么要使用它?

;分号和GO查询末尾有什么区别?


阅读 141

收藏
2022-11-01

共1个答案

一尘不染

GO不是 TSQL 语言的一部分。它是 SQLCMD 和 SSMS 使用的批处理分隔符。

GO 不是 Transact-SQL 语句;它是 sqlcmd 和 osql 实用程序以及 SQL Server Management Studio 代码编辑器识别的命令。

SQL Server 实用程序将 GO 解释为它们应该将当前批次的 Transact-SQL 语句发送到 SQL Server 实例的信号。当前批次的语句由自上次 GO 或自特别会话或脚本开始(如果这是第一个 GO)以来输入的所有语句组成。

Transact-SQL 语句不能与 GO 命令占用同一行。但是,该行可以包含注释。

SQL Server 实用程序语句 - GO

它起源于命令行界面,并且一直存在于 sqlcmd 中。您可以在命令行界面中通过多行编写批处理,并且在您键入go.

1> select name, create_date
2> from sys.objects
3> where name = 'foo'
4> go
name      create_date
--------- -----------
foo       2020-07-20 09:56:42.393

(1 rows affected)
1>

您可以在 SSMS 中配置用于批处理分隔符的内容。GO是默认值,但它可以是其他任何东西。

坚果

2022-11-01