Я мог бы, вероятно, гуглить это, но это казалось довольно странным, что, возможно, стоило войти в качестве ответа на SA.
Так что в стране разработки, если вы хотите поменять местами значения двух переменных, вам понадобится третья временная переменная.
, например
string x = "ABC";
string y = "DEF";
string temp;
temp = x;
x = y;
y = temp;
Однако в SQL Update вы можете просто сказать
UPDATE table
SET ColumnA = ColumnB, ColumnB = ColumnA
Как это работает под капотом
- Делает ли SQL Server снимок всей строки первым?
- Делает ли SQL Server моментальный снимок всех строк, обновляемых за один раз?
- Понимает ли оптимизатор, что выполняет обмен столбцами, и создает временную переменную за сценой?
Приветствия EoinC