回答

收藏

分配变量时是SET还是SELECT?

技术问答 技术问答 102 人阅读 | 0 人回复 | 2023-09-13

在T-SQL中分配变量时,SET和SELECT语句之间有什么区别?
: ?" {' o& B0 P' k; F) v4 d. y                - R$ i+ g" ~: s6 X5 b
解决方案:4 O& V$ a" u2 u
                + P7 e' g9 a. `9 @

2 ^/ ]3 |4 L3 ?) Y0 W0 q- S1 o2 {8 ^; E
                Quote,本文总结如下:
- C4 _: C- L* }6 L$ O0 f+ X; z% N0 d* e
[ol]SET是用于变量分配的ANSI标准,而SELECT不是。
; z4 ]! s* Y8 M: RSET一次只能分配一个变量,SELECT可以一次进行多个分配。! y4 [- }4 w- \% j
  3.
2 f+ C" Y# [! u( z1 b/ V5 \如果从查询分配,SET只能分配标量值。如果查询返回多个值/行,则SET将引发错误。SELECT会将值之一分配给变量,并隐藏返回了多个值的事实(因此您很可能永远都不知道为什么其他地方出了问题-0 Y3 M& t# b$ \' D9 d
有趣地对其中一个进行故障排除)从查询分配时,如果没有返回值,则SET将分配NULL,而SELECT根本不会进行赋值(因此该变量将不会从其先前的值更改)$ x$ s: j% T! `3 M3 O
至于速度差异-SET和SELECT之间没有直接差异。但是,SELECT一次完成多个任务的能力确实使其速度比SET稍有优势。
. @, B) a* m# C0 r, N1 T# Z& b/ M
1 Y2 G! o3 _9 |" D1 x[/ol]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则