在sqlserver 2005中更新查询

时间:2011-07-16 13:15:42

标签: sql-server sql-server-2005

我需要编写更新查询,而我没有获取语法将数据从表emp1移动到emp2,其中city ='blore'

table name -->Emp1
empID name  City 
1     aaa    chennai
2     xyz    blore
3     asds   chennai
4     vvv   blore
5     aaa   chennai
6     yyy   blore

table name -->Emp2
empID name  
1     aaa    
2     xyz    
3     asds   
4     vvv   
5     aaa   
6     yyy   

2 个答案:

答案 0 :(得分:0)

INSERT INTO Emp2 (Name)
       SELECT Name FROM Emp1 WHERE City = 'blore'

DELETE FROM Emp1 WHERE City = 'blore'

答案 1 :(得分:0)

实际问题和预期结果不是很清楚。我会猜一下:

UPDATE Emp2 
SET Emp2.name = Emp1.name
FROM Emp1
INNER JOIN Emp2
ON Emp1.empID = Emp2.empID
WHERE Emp1.City = 'blore';

您可以考虑添加一个额外的WHERE子句来限制实际更新,但是您没有指定name是否在任何一个表中都可以为空。所以可能是这个......

AND Emp1.name <> Emp2.name

......或者可能是这个......

AND COALESCE(Emp1.name, 'some not possible natural value') 
 <> COALESCE(Emp2.name, 'some not possible natural value')

......或者你可能只需要COALESCE。