我试图更新表格:
UPDATE Table_name
SET start_date = '12/12/2015' where employee_number = 111111
但我需要根据employee_number修改数百个start_dates。
UPDATE Table_name
SET start_date = '12/12/2015' where employee_number = 111111
SET start_date = '01/05/2015' where employee_number = 111112
etc....
对于像我这样的简单条件,sql是否有更新表的首选方法?
答案 0 :(得分:2)
我猜你在分隔的表格(或文件)中有这些日期。如果你不这样做,那就去创造吧。
然后加入两个表
UPDATE t
SET t.start_date = s.start_date
FROM Table_name t
JOIN sourceTable s
ON t.employee_number = s.employee_number
答案 1 :(得分:0)
新答案
我刚刚看到您的评论,即数据来自电子表格。如果这是一次性更改,那么您可以将电子表格加载到SSMS中的表中并直接从那里更新
update table_name
set table_name.start_date = excel_table.start_date
from table_name
join excel_table
on excel_table.employee_id = table_name.employee_ie
原始答案
你有一个模棱两可的问题。每个用户是否都拥有自己的特殊日期?您能否以编程方式确定需要更新的用户?
如果是这样,你可以这样做:
update table_name
set start_date = date_table.date
from table_name
join user_table
on user_table.employee_number = table_name.employee_number
join date_table
on -- <date table join>
where
-- filter users and dates here