将要执行的语句用@sql变量拼出来,然后用sp_executesql执行之。
如:
... ...
set @colname=N'Z' + datepart(m,getdate())
set @sql=N'update [table] set ' + @colname + N'=' + @YourData
exec sp_executesql
... ...

解决方案 »

  1.   

    用动态SQL
    DECLARE @RQ DATETIME,@M INT,@SQL VARCHAR(1000)
    SET @M=MONTH(@RQ)
    SET @SQL = 'UPDATE TABLENAME SET  '+ 'Z'+RIGHT('00'+CAST(@M AS VARCHAR(2)),2) +'=     WHERE ...'
    EXEC (@SQL)
      

  2.   

    set @colname='Z' + cast(datepart(m,getdate()) as char(2))
    set @sql='update yourtable set ' + @colname + '=''' + @YourData +''''
    exec (@sql)
      

  3.   

    用动态SQL
    DECLARE  @M INT,@SQL VARCHAR(1000)
    SET @M=MONTH(GETDATE())
    SET @SQL = 'UPDATE TABLENAME SET  '+ 'Z'+RIGHT('00'+CAST(@M AS VARCHAR(2)),2) +' =     WHERE ...'
    EXEC (@SQL)