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

Kæm*_*ker 3 t-sql sql-server

我正在关注Patrick LeBlanc撰写的《 Microsoft SQL Server 2012》一书。当我使用本书中的示例创建内联表值函数时,出现此标题的错误。我尝试通过右键单击“功能”->“新建”->“内联表值函数”来创建代码,然后更改代码。我还写了本书的全部代码。如我所见,在CREATE FUNCTION语句之前有GO语句。代码看起来像这样,是什么原因造成的?

USE AdventureWorks2016CTP3;
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION dbo.GetOrderDetails
(
    @SalesOrderID int
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT
        sod.SalesOrderID,
        sod.SalesOrderDetailID,
        sod.CarrierTrackingNumber
        p.Name AS ProductName,
        so.Description
    FROM Sales.SalesOrderDetail AS sod
    INNER JOIN Porduction.Product AS p
        ON sod.ProductID = p.ProductID
    INNER JOIN Sales.SpecialOffer AS so
        ON sod.SpecialOfferID = so.SpecialOfferID
    WHERE
        sod.SalesOrderID = @SalesOrderID
)
GO
Run Code Online (Sandbox Code Playgroud)

Ala*_*ein 5

看起来几乎是正确的-

放在逗号后

sod.CarrierTrackingNumber
Run Code Online (Sandbox Code Playgroud)

并改变

INNER JOIN Porduction.Product AS p
Run Code Online (Sandbox Code Playgroud)

INNER JOIN Production.Product AS p
Run Code Online (Sandbox Code Playgroud)

(注意“生产”拼写错误)

编辑:格式错误。