Cytat, który podsumowuje ten artykuł:
- SET to standard ANSI dla przypisywania zmiennych, SELECT nie.
- SET może przypisywać tylko jedną zmienną na raz, SELECT może wykonywać wiele przypisań naraz.
- W przypadku przypisywania z zapytania, SET może przypisać tylko wartość skalarną. Jeśli zapytanie zwróci wiele wartości/wierszy, to SET zgłosi błąd. SELECT przypisze jedną z wartości do zmiennej i ukryje fakt, że zwrócono wiele wartości (więc prawdopodobnie nigdy nie będziesz wiedział, dlaczego coś poszło nie tak gdzie indziej – baw się dobrze, rozwiązywanie tego problemu)
- Podczas przypisywania z zapytania, jeśli nie ma zwróconej wartości, SET przypisze NULL, gdzie SELECT w ogóle nie dokona przypisania (więc zmienna nie zostanie zmieniona z poprzedniej wartości)
- Jeśli chodzi o różnice prędkości - nie ma bezpośrednich różnic między SET i SELECT. Jednak zdolność SELECT do wykonywania wielu zadań w jednym ujęciu daje mu niewielką przewagę szybkości nad SET.