T-SQL,为什么要写GO

T-SQL, why do we write GO

为什么这段代码里有两个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 会隔离每个批次

例如

Declare @v int = 25
Select @V;

go

Select @v ;

第一个 SELECT 执行正常,returns 25 而第二个抛出错误