参考:http://gaowenjie7758.blog.163.com/blog/static/5946788920091116244306/
SQL存储过程中SELECT与SET 对变量赋值的区别
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT。对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两种方式还是有很多差别的。SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。
下表列出 SET 与 SELECT 的区别。请特别注意红色部分。
set | select | |
同时对多个变量同时赋值 | 不支持 | 支持 |
表达式返回多个值时 | 出错 | 本人在2005中测试,也报错 |
表达式未返回值 | 变量被赋null值 | 本人在2005中测试,变量被赋null值 |
综上所述,set和select的区别在于,select支持同时对多个变量赋值,而set不支持