В результате ошибки при импорте в тестовую таблицу CUSTOMERS мне потребовалось изменить значения двух столбцов в SQL Server.
Я по ошибке импортировал соответствующие значения для LASTNAME и FIRSTNAME в противоположные поля (т.е. фамилия клиента была импортирована в имя, и наоборот). Чтобы исправить это, я выполнил следующий запрос в SQL Server 2008 R2, конечно, не ожидая, что он сработает:
UPDATE CUSTOMERS
SET LASTNAME=FIRSTNAME, FIRSTNAME=LASTNAME
Удивительно, но он сработал! Ограниченный опыт программирования, который у меня был (средняя школа, несколько курсов в колледже), всегда следовал парадигме, что переключение двух значений требует наличия третьей переменной для "удержания" значения одного из начальных значений. Другими словами, я ожидал, что мне придется выполнить следующий запрос:
UPDATE CUSTOMERS
SET SOMEOTHERFIELD = LASTNAME
SET LASTNAME = FIRSTNAME
SET FIRSTNAME = SOMEOTHERFIELD
Это поведение наблюдается только в SQL Server 2008 R2, или это представляет собой какую-то другую основную грань реляционной теории, которую я упускаю?