這裏是我用來創建一個功能,它接受table
作爲輸入,並且操作後的函數返回內的代碼導致table
格式爲:如何在T-SQL中編寫函數,該函數接受一個表作爲輸入並將結果返回爲表?
CREATE FUNCTION fn_CalculateListing(@Listing ListingColumn READONLY) --(ROWID INT,value1 INT, value2 INT))
RETURNS TABLE
AS
BEGIN
DECLARE @result TABLE (ID INT, Name VARCHAR(50))
INSERT INTO @result(ID,Name)
SELECT ROWID, Name
FROM @Listing
RETURN @Listing
END
我試圖用table-inline parameter
但收到以下錯誤:
Msg 137, Level 15, State 2, Procedure fn_CalculateListing, Line 16
Must declare the scalar variable "@Listring".Msg 102, Level 15, State 31, Procedure fn_CalculateListing, Line 29
Incorrect syntax near 'BEGIN'.`
我該如何使它正確?
首先,您必須爲輸入聲明一個TYPE。其次,您正在混合兩種創建功能的風格。一個是BEGIN和END,它需要一個詳細的表格聲明,另一個是在'AS'後面緊跟'RETURN SELECT ...'。第一種是「多語句TVF」,如果有可能,你應該**避免**;第二種是可以的(臨時的)TVF,它非常棒!** – Shnugo