2016-11-07 25 views
3

Patrick LeBlancの本「Microsoft SQL Server 2012」に従っています。インラインテーブル値関数を作成するための例題を使ってこの記事のタイトルに誤りがあります。私は、関数 - >新規 - >インラインテーブル値関数を右クリックしてコードを作成しようとしましたが、コードを変更しました。私は本からコード全体を書きました。私が見る通り、CREATE FUNCTIONステートメントの前にGOステートメントがあります。 コードはこのように見えますが、これを引き起こす原因は何ですか?'CREATE FUNCTION'はバッチ内の唯一の文でなければなりません。

、ほぼ正しいよう
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 
+1

ここには 'sod.CarrierTrackingNumber 'がありません。すべてが細かく見える以外は –

+0

GOを下に移動して実行するまで、CREATE FUNCTIONをすべて強調表示して実行してください。 – Eric

答えて

4

-

sod.CarrierTrackingNumber 

後にコンマを入れて、

INNER JOIN Production.Product AS p 

INNER JOIN Porduction.Product AS p 

を変更

(「生産」の綴りは間違っています)

編集:不正な書式設定。

+0

それからちょうど2,3のタイプミス。 SSMSによって生成されたエラーが非常に役に立つとは思わないでください。 –

関連する問題