【发布时间】:2020-02-15 22:05:32
【问题描述】:
为什么这段代码中有两个 GO?当查询只需要运行一次时,为什么我们需要包含它?
USE AdventureWorks2016;
GO
SELECT
Ord.SalesOrderID, Ord.OrderDate,
(SELECT MAX(OrdDet.UnitPrice)
FROM Sales.SalesOrderDetail AS OrdDet
WHERE Ord.SalesOrderID = OrdDet.SalesOrderID) AS MaxUnitPrice
FROM Sales.SalesOrderHeader AS Ord;
GO
【问题讨论】:
-
GO不是 T-SQL 关键字,它被 IDE(例如 SSMS)用作批处理分隔符。某些命令必须是批处理中的唯一语句(例如创建一个 SP)。这使您可以轻松地一个接一个地运行多个批次。它还会清除变量之类的东西,这些变量只在声明它们的批次中持续存在。 -
@Larnu:好吧,你说的批处理分隔符是什么意思? Som我可以看到代码块结束了吗?
-
不,那是语句终止符 (
;)。 -
@Larnu:好的,谢谢,但还是有点困惑,因为我不明白你所说的批处理是什么意思......
标签: sql sql-server tsql ssms