2013-04-04 137 views
0

我有一个产品表。我有一些空行。我想用现有的行填充这些行。例如,如果我有如何使用现有行更新行?

Product 
----------------------------------- 
ID Name Desc --------------- 
1  A  A1 --------------- 
2  B  B1 --------------- 
3  C  C1 --------------- 

我想将ID = 1的所有项复制到ID = 3行。

试过,但收到错误,Ambigious

UPDATE [Products] 
SET DP.[Name] = SP.Name 
    ,DP.[Desc] = SP.DESC       
FROM [Products] DP 
     INNER JOIN [Products] SP ON SP.ID = 3 
WHERE DP.ID = 1 
+1

[你有什么** **你试过??](http://www.whathaveyoutried.com) – 2013-04-04 07:57:53

+1

复制 - http://stackoverflow.com/questions/2334712/update-from-select- using-sql-server – 2013-04-04 07:58:41

+0

@感谢Deepak。我已seearched,但没有发现任何 – user960567 2013-04-04 08:03:19

回答

1

您需要使用别名 - 无论是DP或SP在UPDATE,而不是产品本身,因为它是两者之间的暧昧。

UPDATE DP 
SET DP.[Name] = SP.Name 
    ,DP.[Desc] = SP.[DESC]       
FROM [Products] DP 
INNER JOIN [Products] SP ON SP.ID = 3 
WHERE DP.ID = 1 
+0

非常感谢。 – user960567 2013-04-04 08:17:47