2015-10-13 2 views
0

Я хотел бы знать, что произойдет, когда я делаю обновления с дублированием строк, например:Sql сервер обновления запросов в таблице с дублированием записей

Table 1: 

Email    StatusID Status 
[email protected]  NULL  
[email protected]   1   Busy 
[email protected]  2   Online 
[email protected]   NULL  

Table 2: 

Email   Name    RejectionStatusID RejectionStatus 
[email protected] Dome      1    
[email protected] Phil      2 

Результат?

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

Мне хотелось бы узнать, какой из дублированных и почему ??? Не совсем уверен!!! Конечно, я сделал запрос и знаю, что происходит, но почему? Просто хочу объяснение ... Спасибо.

EDITED: Это пример, это то, что происходит с нулевыми значениями !!!

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

ответ

0

от Бола https://msdn.microsoft.com/en-us/library/ms177523(v=sql.110).aspx

Результаты оператора UPDATE не определены, если оператор включает в себя ЕК, который не указан таким образом, что только одно значение для каждого столбца которое обновляется, то есть если оператор UPDATE не является детерминированным.

Смежные вопросы