2015-09-25 21 views
0

我想從另一個UDF調用UDF並希望獲得所需的輸出。但是,SQL Server不會在第二個UDF中返回任何內容。SQL Server不從用戶定義的函數返回正確的輸出

我的電話是:

DECLARE @V_F VARCHAR(200) 
EXEC @V_F = dbo.fnCalcDiscount 220,'1234567812345679','Thailand' 
PRINT @V_F 
GO 

DECLARE @V_F VARCHAR(200) 
EXEC @V_F = dbo.groupsanddiscounts '1234567812345679','Thailand',220,220 
PRINT @V_F 
GO 

輸出:

機構 groupsanddiscounts
110 
0 

機構
CREATE FUNCTION [dbo].[groupsanddiscounts] 
    (@p_PROMOCODE VARCHAR(50), 
    @p_COUNTRY VARCHAR(100), 
    @p_TOTVAL INT, 
    @p_NEWSIMCOST INT) 
RETURNS VARCHAR(300) 
AS BEGIN 
    DECLARE @p_FINALVALUE VARCHAR(300) 

    SELECT @p_FINALVALUE = dbo.fnCalcDiscount (@p_NEWSIMCOST, @p_PROMOCODE, @p_COUNTRY) 
    RETURN @p_FINALVALUE   
END 

fnCalcDiscount

CREATE FUNCTION [dbo].[fnCalcDiscount] 
    (@p_TOTVAL INT, 
    @p_PROMOCODE VARCHAR(200), 
    @p_COUNTRY VARCHAR(200)) 
RETURNS VARCHAR(300) 
AS BEGIN 
    DECLARE @retResult VARCHAR(300) 

    SELECT @retResult = '110' 
    RETURN @retResult 
END 

任何想法什麼是狂暴?

感謝

Output

+0

仍然是相同的輸出。更新我的問題的截圖 – Satya

回答

0

嘗試使用select

select dbo.fnCalcDiscount(220, '1234567812345679', 'Thailand') 

我很驚訝,exec不是簡單地返回一個錯誤。它通常用於存儲過程和SQL代碼。

+0

甚至更​​好'select @V_F = dbo.fnCalcDiscount(220,'1234567812345679','Thailand')' –