我有一个带有列的SQL Server表:
target_2011, target_2012, target_2013, target_2014, target_2015
根据当前年份,我们在2016年进入2016年后,是否有任何方法可以向表中添加动态列target_2016
?
答案 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运行。
虽然这可以满足您的需求,但我同意评论部分中的观察结果。这本质上是一种糟糕的设计,根本不是一个好主意。