我第一次使用表值作爲SQL Server 2008中函數的參數。以下代碼產生此錯誤:SQL Server 2008表變量錯誤:必須聲明標量變量「@RESULT」
必須聲明標量變量「@RESULT」。
爲什麼?我在函數的第一行聲明它!
ALTER FUNCTION f_Get_Total_Amount_Due(
@CUSTOMER_LIST [tpCSFM_CUSTOMER_SET_FOR_MONEY] READONLY
)
RETURNS [tpCSFM_CUSTOMER_SET_FOR_MONEY]
AS
BEGIN
--Prepare the return value, start with initial customer list
DECLARE @RESULT AS [tpCSFM_CUSTOMER_SET_FOR_MONEY]
INSERT INTO @RESULT SELECT * FROM @CUSTOMER_LIST
--Todo: populate with real values
UPDATE @RESULT SET tpCSAM_MONEY_VALUE = 100
--return total amounts as currency
RETURN @RESULT
END
什麼是'[tpCSFM_CUSTOMER_SET_FOR_MONEY]'? – SLaks 2010-03-23 00:27:46
我已經在數據庫中創建了一個自定義類型 – Trindaz 2010-03-23 04:54:41
您明白自定義類型通常是一個壞主意?他們可以導致巨大的維修問題?我會盡量避免使用它們!從聯機書籍: 「要修改用戶定義類型,必須使用DROP TYPE語句刪除該類型,然後重新創建它。」 這意味着您需要首先將使用該類型的所有數據更改爲另一種類型,然後刪除該類型,然後創建新類型,然後將所有要將該數據類型恢復爲新數據的字段更改。這是一個維護噩夢,我不知道誰管理大型數據庫將允許使用自定義類型。 – HLGEM 2010-03-24 17:19:29