SET 与 SELECT - 有什么区别? [英] SET vs. SELECT - What's the difference?

查看:24
本文介绍了SET 与 SELECT - 有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以找出 T-SQL 中 SETSELECT 之间的功能/性能差异吗?在什么情况下我应该选择一个?

Can someone please identify the functional/performance differences, if any, between SET and SELECT in T-SQL? Under what conditions should I choose one over the other?

更新:
感谢所有回复的人.正如一些人指出的那样,这篇文章来自Narayana Vyas Kondreddi 有很多很好的信息.看完文章我也上网查了一下,发现thisRyan Farley 的版本,其中提供了亮点,我想我会分享它们:

UPDATE:
Thanks to all who responded. As a few people pointed out, this article by Narayana Vyas Kondreddi has lots of good info. I also perused the net after reading the article and found this condensed version by Ryan Farley which offers the highlights and thought I would share them:

  1. SET 是 ANSI 标准变量赋值,SELECT 不是.
  2. SET 只能给一个变量赋值一次,SELECT 可以使多个立即分配作业.
  3. 如果从查询中分配,SET 可以只分配一个标量值.如果查询返回多个值/行那么 SET 将引发错误.选择将其中一个值分配给变量并隐藏事实返回了多个值(所以你可能永远不知道为什么其他地方出了点问题 - 排除故障的乐趣)
  4. 从查询分配时,如果有没有返回值,则 SET 将分配 NULL,其中 SELECT 不会进行分配(所以变量不会从它是以前的值)
  5. 至于速度差异 - 有之间没有直接区别设置和选择.然而 SELECT 的能够完成多项任务一次拍摄确实给了它一点点速度优于 SET.

推荐答案

SET 是为变量赋值的 ANSI 标准方法,而 SELECT 不是.但是您可以使用 SELECT 一次为多个变量赋值.SET 允许您一次只将数据分配给一个变量.因此,在性能方面,SELECT 将成为赢家.

SET is the ANSI standard way of assigning values to variables, and SELECT is not. But you can use SELECT to assign values to more than one variable at a time. SET allows you to assign data to only one variable at a time. So that in performance is where SELECT will be a winner.

更多细节和例子参考:给变量赋值时SET和SELECT的区别

这篇关于SET 与 SELECT - 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆