无论如何根据当前年份在SQL Server表中动态添加列?

时间:2015-11-18 05:39:49

标签: sql sql-server sql-server-2008

我有一个带有列的SQL Server表:

target_2011, target_2012, target_2013, target_2014, target_2015

根据当前年份,我们在2016年进入2016年后,是否有任何方法可以向表中添加动态列target_2016

1 个答案:

答案 0 :(得分:3)

使用

创建SQL代理作业
DECLARE @column varchar(20), @SQL varchar(1000)
SET @column = 'target_'+CAST(year(getdate()) AS varchar(4))
SET @SQL = 
'ALTER TABLE <yourtable>
ADD '+@column+' varchar(50)'
EXECUTE (@SQL)

现在安排这项工作在每年1月1日00:01运行。

虽然这可以满足您的需求,但我同意评论部分中的观察结果。这本质上是一种糟糕的设计,根本不是一个好主意。