【问题标题】:How to execute Table valued function如何执行表值函数
【发布时间】:2011-08-05 08:23:08
【问题描述】:

我有以下返回 Table 的函数。

create Function FN(@Str varchar(30))
  returns
  @Names table(name varchar(25))
  as 
  begin 

      while (charindex(',', @str) > 0)
      begin
      insert into @Names values(substring(@str, 1, charindex(',', @str) - 1))
     set  @str = substring(@str, charindex(',', @str) + 1, 100)  
      end
      insert into @Names values(@str)  

      return
  end

谁能解释一下如何运行这个函数。

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql


    【解决方案1】:

    TVF (table-valued function) 应该是从 SELECTed FROM 中选择的。试试这个:

    select * from FN('myFunc')
    

    【讨论】:

    • 请注意,根据服务器/设置,您可能需要识别架构,例如select * from dbo.FN('myFunc')
    【解决方案2】:

    您可以像使用SELECT 子句选择表一样执行它。此外,您可以在括号内提供参数。

    试试下面的语法:

    SELECT * FROM yourFunctionName(parameter1, parameter2)
    

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 2017-03-14
      • 2010-10-02
      • 2018-01-01
      • 2014-05-29
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      相关资源
      最近更新 更多