Below is the query causing error:
EXECUTE (' UPDATE facetswrk.dbo.ODS_SUBSC_PREM_REPORT ' + ' SET ' + @lcrcolumn_name + ' = ' + @lcrcolumn_total)
Your syntax is ok, probably you have wrong valye for column name, or you need to cast @lcrcolumn_tot as nvarchar.
Give us the value for the variable, pr check by yourself with the flowing statement:
declare @lcrcolumn_name nvarchar(50) = 'blabla',
@lcrcolumn_tot nvarchar(50) = 10
declare @sql nvarchar(4000);
set @sql = ' UPDATE facetswrk.dbo.ODS_SUBSC_PREM_REPORT SET ' + @lcrcolumn_name + ' = ' + @lcrcolumn_tot
print @sql
execute(@sql)
@lcrcolumn_nameand@lcrcolumn_total?