表中的Sql server Update Query具有重复记录

时间:2015-10-13 21:10:55

标签: sql-server-2012

我想知道当我使用重复行进行更新时会发生什么,例如:

Table 1:

Email               StatusID   Status
phil@gmail.com        NULL      
dome@yahoo.es         1         Busy
phil@gmail.com        2         Online
dome@yahoo.es         NULL      

Table 2:

Email            Name             RejectionStatusID  RejectionStatus  
dome@yahoo.es    Dome                     1               
phil@gmail.com   Phil                     2

结果

Update Table2
SET RejectionStatusID = StatusID,
RejectionStatus = Status
FROM Table2 Inner Join Table1
ON Table2.Email = Table1.Email

我想知道哪个重复,为什么???不太确定!!!当然,我做了查询,知道发生了什么,但为什么?只想要一个解释...... 感谢。

EDITED: 这是一个例子,这是使用null值发生的事情!!!

http://sqlfiddle.com/#!6/6ee69/1/0

1 个答案:

答案 0 :(得分:0)

来自BoL https://msdn.microsoft.com/en-us/library/ms177523(v=sql.110).aspx

  

如果语句包含的FROM子句未以这样的方式指定,那么UPDATE语句的结果是未定义的,即只有一个值可用于更新的每个列事件,即UPDATE语句不是确定性的。