SQL如何使用同一表中的数据更新列

SQL如何使用同一表中的数据更新列,sql,sql-server,Sql,Sql Server,我有下表,我想进入并用从表本身读取的数据更新列NEW_DATE。我正在努力理解正确的MS SQL以实现这一目标。有什么帮助吗 ID START_DATE ADD_DAYS NEW_DATE ------------------------------------------ 1 02/02/2017 5 2 06/24/2017 3 3 07/14/2017 9 4 05/19/2017 12

我有下表,我想进入并用从表本身读取的数据更新列NEW_DATE。我正在努力理解正确的MS SQL以实现这一目标。有什么帮助吗

ID START_DATE     ADD_DAYS    NEW_DATE    
------------------------------------------
1  02/02/2017     5     
2  06/24/2017     3      
3  07/14/2017     9      
4  05/19/2017     12    
如果需要使用条件更新行,可以执行以下操作,例如:

UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)
updatemytable SET NEW\u DATE=DATEADD(天,添加天,开始日期)
其中ID<10

如果您可以控制模式,则可能值得将此
新的\u DATE
列添加为计算列

UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)
WHERE ID < 10

这样,您就不需要更新任何内容,对“添加日期”或“开始日期”所做的任何更改都会自动重新计算。

编辑您的问题并显示所需的结果。如果您可以控制架构,则可能值得将此
新的\u日期
列添加为计算列。(例如,
alter table table\u name将新的日期添加为dateadd(天、添加天、开始日期)
。这样,您就不需要更新任何内容,对
添加天数
开始日期
的任何更改都会自动重新计算。我可以将条件语句添加到设置的新日期吗?我想适应许多不同的场景。@Teeko…再问一个更详细的问题。你有两个非常好的答案回答您实际提出的问题。@Teeko:请参阅更新的答案,对于不依赖于表值的更复杂的条件,您需要另一种选择,如果这是您的情况,请问另一个问题谢谢Icarus,这将是一个好主意,除了我有条件更新语句,而且还需要定期运行此更新.
ALTER TABLE table_name ADD NEW_DATE as DATEADD(DAY,ADD_DAYS,START_DATE)