SET在 T-SQL 中分配变量时和SELECT语句有什么区别?
SET
SELECT
引用,从这篇文章中总结:
SET 是变量赋值的 ANSI 标准,而 SELECT 不是。 SET 一次只能分配一个变量,SELECT 可以一次进行多个分配。 如果从查询分配,SET 只能分配一个标量值。如果查询返回多个值/行,则 SET 将引发错误。SELECT 会将其中一个值分配给变量并隐藏返回多个值的事实(因此您可能永远不知道为什么其他地方出了问题 - 有乐趣解决那个问题) 当从查询中分配时,如果没有返回值,则 SET 将分配 NULL,其中 SELECT 根本不会进行分配(因此变量不会从其先前的值更改) 至于速度差异 - SET 和 SELECT 之间没有直接差异。然而,SELECT 在一次拍摄中完成多项任务的能力确实使它比 SET 具有轻微的速度优势。