sql - Is it possible to pass a variable column name into an update statement? -


i have table of data lists values 12 period columns. i'm trying 0 previous months data @ beginning of month unsuccessfully. first part of query returns column name, pass update statement thats goes wrong?? please help.*

declare @a varchar(20) = (select listofperiod [periods] p                            inner join (select monthofyear                             ref_calender rc                            rc.date = dateadd(m,-1,convert(date,getdate())))                           rc on p.monthofyear = rc.monthofyear)   update fd set  @a = 0           [test_table] fd         inner join [glx]ag on fd.company = ag.company         , fd.acctnum = ag.account_id  ' 

you have use dynamic sql achieve this:

declare @sql nvarchar(max)  set @sql = 'update fd              set ' + @a + '= 0                [test_table] fd             inner join [accpac_glx]ag                     on fd.company = ag.company                        , fd.acctnum = ag.account_id'  exec (@sql) 

Comments