【问题标题】:call an SQL User Defined Function Within another User Defined Function在另一个用户定义函数中调用 SQL 用户定义函数
【发布时间】:2013-08-17 01:02:59
【问题描述】:

我有以下 UDF,我想调用另一个 udf 在返回时拆分结果

-- =============================================
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` )

有可能吗?如果是怎么办?

【问题讨论】:

  • 好吧,也许是一个荒谬的问题,但你为什么不直接调用内部函数而不是嵌套它们,或者使用同义词呢?除了令人头疼的维护甚至进一步限制优化之外,嵌套它们还能为您带来什么?
  • 好吧,因为其他功能已经存在并且也用于单独的功能......但我在这里明白你的意思。我不熟悉 UDFS,老实说从来没有想过嵌套它们

标签: sql sql-server database function


【解决方案1】:

我想你想要这样的东西:

declare @retval varchar(128);

select . . .;

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

return @retval;

【讨论】:

    【解决方案2】:

    试试:

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

    不过,我非常谨慎地建议这样做:UDF 本身就已经够糟糕的了;嵌套它们只会使问题更加复杂。可能更好地编写需要一个函数而不是另一个函数的代码来直接调用它们,而不是使用这种嵌套方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      相关资源
      最近更新 更多