2013-10-16 64 views
0

例如,我查詢數據庫,T-SQL的一個查詢,比較值,並更新條件

SELECT SALARY, WEEKLY_HOURS FROM EMPLOYEE WHERE EMP_ID = 999 

然後我比較的工資和WEEKLY_HOURS局部變量。如果我的本地值是不同的,我跑了一個更新查詢:

UPDATE EMPLOYEE SET SALARY = 255, WEEKLY_HOURS = 72 WHERE EMP_ID = 999 

如果值是沒有區別的,我跳過更新查詢。

所以我的問題是,我可以在沒有存儲過程的情況下在一個查詢中進行比較和更新嗎?只是想保存一次往返。

謝謝。

+0

可能重複[有沒有辦法同時選擇和更新行?](http://stackoverflow.com/questions/497464/is-there-a-way-to-select-和更新行,在最相同的時間) –

回答

1
update e 
set 
e.Salary = 255 
, e.Weekly_Hours = 72 
from 
Employee e 
where 
e.Emp_ID = 999 
and (
    e.Salary <> 255 or 
    e.Weekly_Hours <> 72)