Попробуйте этот код ниже, Вы не объявили эти параметры " @ TableName и @ ModuleId ", проверьте свой код и присвойте значение для @TableName и @ModuleId
Declare @Counter int=1
,@Tot_Count int=0
,@LevleId int
,@Status int
,@RecId int
,@Module_id int
,@TableName varchar(30)=''
Create Table #Temp_Table
(
Id int identity(1,1)
,level_id int
,status_id int
,record_id int
,Module_id int
)
Insert into #Temp_Table
(
level_id,status_id,record_id
)
Select level_id
,status_id
,record_id
,Module_id
from #temp_record_id_typ2
where approval_typ_id = 2
Select @Tot_Count=Count(1) from #Temp_Table
While @Tot_Count >= @Counter
Begin
Select @LevleId=level_id
,@Status=status_id
,@RecId=record_id
,@Module_id=Module_id
from #Temp_Table
where Id=@Counter
IF ( @LevleId = 1 AND @STATUS <> 3 )
BEGIN
Exec
('
UPDATE hrms_approvals
SET approval_status_id = ' + @STATUS + '
WHERE record_id = ' + @RECID + '
AND module_id = ' + @Module_id +'
UPDATE '+ @TableName +'
SET approval_status_id = 9
WHERE id = '+ @RECID + '
')
PRINT 'LevleId = 1'
END
ELSE IF ( @LevleId = 3 AND @STATUS <> 3 )
BEGIN
SELECT @STATUS,
@LevleId
PRINT 'LevleId = 3'
END
ELSE IF ( @LevleId = 4 AND @STATUS <> 3 )
BEGIN
SELECT @STATUS,
@LevleId
PRINT 'LevleId = 4'
END
ELSE IF ( @LevleId = 5 AND @STATUS <> 3 )
BEGIN
SELECT @STATUS,
@LevleId
PRINT 'LevleId = 5'
END
Set @Counter+=1
End
Drop table #Temp_Table