Я только что попробовал это и был удивлен, что не получил ошибку.Вместо этого, как вы предполагали, Table1.Column2
было обновлено с результатами первой строки из Table2
.
CREATE TABLE #test1 (Col1 int, Col2 varchar(10))
CREATE TABLE #test2 (Col1 int, Col2 varchar(10))
INSERT INTO #test1 (col1) Values (3097), (3097)
INSERT INTO #test2 (Col1, Col2) Values (3097, 'C1'), (3097, 'C2')
UPDATE #test1 SET Col2 = #test2.Col2
FROM #test1 INNER JOIN #test2 ON #test1.Col1=#test2.Col1
Результаты:
SELECT * FROM #test1
Col1 Col2
3097 C1
3097 C1