Существует два вида табличных функций.Тот, который является просто оператором выбора, и тот, который может иметь больше строк, чем просто оператор выбора.
Это не может иметь переменную:
create function Func() returns table
as
return
select 10 as ColName
Вместо этого вы должны сделать следующее:
create function Func()
returns @T table(ColName int)
as
begin
declare @Var int
set @Var = 10
insert into @T(ColName) values (@Var)
return
end