如何执行表值函数

Shi*_*ine 60 sql t-sql sql-server sql-server-2008

我有以下函数返回表.

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
Run Code Online (Sandbox Code Playgroud)

请问任何人请解释我如何运行此功能.

Pau*_*sey 103

TVF(表值函数)应该FROM被选择.试试这个:

select * from FN('myFunc')
Run Code Online (Sandbox Code Playgroud)

  • 请注意,根据服务器/设置,您可能需要识别模式,例如从dbo.FN('myFunc')中选择* (2认同)

Shi*_*ham 50

您可以像选择table using SELECT子句一样执行它.此外,您可以在括号内提供参数.

尝试使用以下语法:

SELECT * FROM yourFunctionName(parameter1, parameter2)
Run Code Online (Sandbox Code Playgroud)