小编Mak*_*ple的帖子

SELECT SQL变量 - 我应该避免使用这种语法并始终使用SET吗?

这可能看起来像一个复制到这里,但事实并非如此.我想要获得最佳实践,而不是技术性答案(我已经知道).

SQL Server的新手,并试图形成良好的习惯.
我找到了对 这里SET @var =和之间的功能差异的一个很好的解释SELECT @var =
:http: //vyaskn.tripod.com/differences_between_set_and_select.htm
总结一下另一个没有的东西(参见示例的来源):

组:

  1. ANSI和便携式,由Microsoft推荐.
  2. SET @var = (SELECT column_name FROM table_name) 当select返回多于一个值时失败,消除了不可预测结果的可能性.
  3. SET @var = (SELECT column_name FROM table_name)@var如果SELECT column_name FROM table_name返回的话将设置为NULL ,因此永远不会离开@var它的先前值.

选择:

  1. 可以在一个语句中设置多个变量
  2. 可以返回先前DML语句设置的多个系统变量
  3. SELECT @var = column_name FROM table_name将设置@var为(根据我的测试)select返回的最后一个值.这可能是一个功能或错误.可以使用SELECT @j = (SELECT column_name FROM table_name)语法更改行为.
  4. 速度.使用单个 SELECT语句而不是多个SET/SELECT语句设置多个变量快得多.他有一个样本测试来证明他的观点.如果您可以设计一个测试来证明其他情况,请将其打开!

那么,我该怎么办?

  • (几乎)总是使用SET @var =,使用SELECT …

sql t-sql sql-server

9
推荐指数
1
解决办法
334
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1