我经常在我的公司看到查询或SP有这些DML声明。
update #tablename
set Balance = 1
From #tablename
(或)
update #tablename
set Balance =1
From #tablename tn
INNER JOIN
(Select distinct employeeID from myEmployee) Emp
ON tn.EmpID = Emp.EmpID
我的问题:
我不明白为什么我们在第一个查询中需要From #tablename
。因为我通常只在该查询中写出前两行。
他们在第二个查询中做了什么?可以用另一种或更易读的方式完成吗?
答案 0 :(得分:0)
在第一个查询中,不需要from
子句。
第二个查询可能没有做出作者的意图。这个查询:
update #tablename
set Balance =1
From #tablename tn INNER JOIN
(Select distinct employeeID from myEmployee) Emp
ON tn.EmpID = Emp.EmpID;
将更新#tablename
中的每一行。意图可能是:
update tn
set Balance = 1
From #tablename tn INNER JOIN
(Select distinct employeeID from myEmployee) Emp
ON tn.EmpID = Emp.EmpID;
答案 1 :(得分:0)
如果要直接为表中的更新分配值(即:设置a = 1)。 然后就不需要从表格和条件
写入如果要使用其他表的值更新表,请使用第二个查询