检查 - 比较>更新SQL表

时间:2013-03-18 18:07:54

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

我想编写一个存储过程,我可以根据以下条件更新表。

Table 
EmployeeID  GroupID Group#
123     G123        3
456     G456        3
789     G789        3
101     G101        3

View
GroupID_Granular    GroupID_Middle  GroupID_Executive
G123            M123            E123
G789            M789            E789

如果在View的GroupID_Granular列中找到GroupID,请更新表,设置GroupID = GroupID_Executive并将Group#设置为1。

我不确定如何检查/比较,然后运行Update cmd。

谢谢

1 个答案:

答案 0 :(得分:5)

使用JOIN

可以轻松完成此操作
UPDATE t
SET 
    t.GroupID = v.GroupID_Executive, 
    t.[Group#] = 1
FROM YourTable t
JOIN YourView v ON v.GroupID_Granular = t.GroupID 

Sql Fiddle Here