Declare variable in table valued function

esquare picture esquare · Jul 12, 2011 · Viewed 148.2k times · Source

How can I declare a variable in a table valued function? (like in my title)

Answer

Mikael Eriksson picture Mikael Eriksson · Jul 12, 2011

There are two flavors of table valued functions. One that is just a select statement and one that can have more rows than just a select statement.

This can not have a variable:

create function Func() returns table
as
return
select 10 as ColName

You have to do like this instead:

create function Func()
returns @T table(ColName int)
as
begin
  declare @Var int
  set @Var = 10
  insert into @T(ColName) values (@Var)
  return
end