2013-08-16 90 views
1

我有以下的UDF,我想調用另一個UDF是劈在返回結果調用SQL用戶定義函數中其他用戶定義函數

-- ============================================= 
CREATE FUNCTION [dbo].[ufnGetValueForEmployeeTable] 
( 
    @EeID  AS int, 
    @ProvisionID AS int, 
    @optionName  AS varchar(4000) 
) 
RETURNS varchar(128) 
AS 
BEGIN 
    SELECT 
    WHERE 
    RETURN **call here this function** GetOptionValueFromOtherOptions(@optionName , @value `this is the value from select`) 

這可能嗎?如果是的話如何?

+0

好吧,也許是一個荒謬的問題,但你爲什麼不直接調用內部函數而不是嵌套它們,或者使用同義詞?除了維護令人頭痛,甚至進一步限制優化之外,嵌套它們會給你帶來什麼? –

+0

以及其他功能已經存在,並用於單獨的功能..但我在這裏看到你的觀點。我對UDFS不熟悉,並且誠實地從未想過嵌套它們 – lighty

回答

2

我想你想要的東西,如:

declare @retval varchar(128); 

select . . .; 

select @retval = GetOptionValueFromOtherOptions(@optionName , @value); 

return @retval; 
0

嘗試:

RETURN (SELECT dbo.GetOptionValueFromOtherOptions(@optionName, @value)); 

不過我的建議是非常謹慎:UDF是對自己夠糟糕;嵌套它們只會使問題複雜化。可能更好地使代碼需要一個函數而另一個函數直接調用它們,而不是使用這種嵌套方法。