Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SET срещу SELECT при присвояване на променливи?

Цитат, който обобщава от тази статия:

  1. SET е ANSI стандартът за присвояване на променливи, SELECT не е.
  2. SET може да присвоява само една променлива в даден момент, SELECT може да прави множество присвоявания наведнъж.
  3. Ако се присвоява от заявка, SET може да присвоява само скаларна стойност. Ако заявката върне множество стойности/редове, тогава SET ще предизвика грешка. SELECT ще присвои една от стойностите на променливата и ще скрие факта, че са върнати множество стойности (така че вероятно никога няма да разберете защо нещо се обърка другаде - забавлявайте се с отстраняването на проблема)
  4. Когато присвоявате от заявка, ако няма върната стойност, тогава SET ще присвои NULL, където SELECT изобщо няма да извърши присвояването (така че променливата няма да бъде променена от предишната си стойност)
  5. Що се отнася до разликите в скоростта - няма директни разлики между SET и SELECT. Въпреки това, способността на SELECT да прави множество задания наведнъж му дава леко предимство в скоростта пред SET.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да генерирате диапазон от дати в SQL Server

  2. Функция IndexOf в T-SQL

  3. Получаване на минимум две стойности в SQL

  4. Как да проверите настройките за конфигурация за поща на база данни в SQL Server (T-SQL)

  5. Защо SQL Server използва индексно сканиране вместо търсене на индекс, когато клаузата WHERE съдържа параметризирани стойности