How to use table variables and temporary tables in function?
Use of Temporary is not allowed in the function. We can use only the permanent table/or the table variables in the function. As the create table/ any DML/DDL operation is not allowed in the function. Also table variables are allowed in the multi-line function table valued only.
CREATE FUNCTION dbo.udf_get_employs_increment(
@p_lows_lab1 DEC(10,2) ,@p_lows_lab2 DEC(10,2), @p_high_slab DEC(10,2)
)
RETURNS @employ table (
EMPLOYID int,EMPLOYNAME nvarchar(50),Salary FLOAT,Salary_after_increment FLOAT
)
AS
begin
insert into @employ
select EMPLOYID,EMPLOYNAME,EMPLOYSALARY,EMPLOYSALARY*1.10 from employ where EMPLOYSALARY< @p_lows_lab1
insert into @employ
select EMPLOYID,EMPLOYNAME,EMPLOYSALARY,EMPLOYSALARY*1.09 from employ where EMPLOYSALARY between @p_lows_lab1 and @p_lows_lab2
insert into @employ
select EMPLOYID,EMPLOYNAME,EMPLOYSALARY,EMPLOYSALARY*1.08 from employ where EMPLOYSALARY > @p_high_slab
insert into @employ
select EMPLOYID,EMPLOYNAME,EMPLOYSALARY,EMPLOYSALARY*1.07 from employ where EMPLOYSALARY between @p_lows_lab2 and @p_high_slab
return
end
select * from dbo.udf_get_employs_increment(2150,2250,2350)