SQL Server中的多个更新

时间:2016-06-20 17:05:14

标签: sql-server

我在Excel中有500条记录,它包含一些与SQL DB表中的列相同的列。我有旧的列值 以及excel中的新列值。

实施例

Excel中

Name Age OldEmployeeID NewEmployeeID

x    1    100          200
y    2    101          201  
z    3    102          202

SQLTABLE

EmployeeTable中

Name Age Department City EmployeeID
x    1     HR        x    100
a    4     HR        x    103
y    2     Admin     x    101
b    5     Finance   x    104
c    3     IT        x    102

我想将SQL表中的EmployeeID列更新为excel中的NewEmployeeID。 任何人都可以建议如何编写SQL查询来更新sql表。

1 个答案:

答案 0 :(得分:1)

假设该列不是ID列或具有其他约束,您可以:

选项1:

假设您的表与屏幕截图类似,您可以使用此公式连接列,然后将其拖放并直接复制到SQL中。

=CONCATENATE("UPDATE dbo.EmployeeTable SET EmployeeID = ",D2," WHERE EmployeeID = ",C2,";")

enter image description here

选项2:

您可以将Excel文件导入SQL并使用如下所示的语句。但是,如果任何旧的EmployeeID与新的EmployeeID重叠,请务必小心。例如,如果Jim的ID为100,而他的新ID为500且Jane的新ID为100,如果您不小心再次运行它,Jane也将获得500的ID。

UPDATE EmployeeTable SET EmployeeID = Excel.NewEmployeeID
FROM
    EmployeeTable
    JOIN ExcelTable
        ON  Excel.OldEmployeeID = EmployeeTable.EmployeeID
;