有人可以确定T-SQL中SET
和SELECT
之间的功能/性能差异(如果有)吗?我应该在什么条件下选择一个?
更新
感谢所有回复的人。正如一些人所指出的那样,this Narayana Vyas Kondreddi的文章有很多好消息。阅读完文章之后我也仔细阅读了文章,并在this找到了Ryan Farley精简版,其中提供了重点,并认为我会分享它们:
答案 0 :(得分:27)
SET是为变量赋值的ANSI标准方法,而SELECT则不是。但您可以使用SELECT一次为多个变量赋值。 SET允许您一次仅将数据分配给一个变量。因此,在性能方面,SELECT将成为赢家。
有关更多详细信息和示例,请参阅:Difference between SET and SELECT when assigning values to variables
答案 1 :(得分:7)
SQL Server:必须使用SELECT的一种情况是分配@@ ERROR和@@ ROWCOUNT,因为这些必须在同一语句中设置(否则它们会被重置):
SELECT @error = @@ERROR, @rowcount = @@ROWCOUNT
(SET一次只能使用一个值)
答案 2 :(得分:6)
答案 3 :(得分:3)
设置并选择两个赋值给变量。使用select,您可以将值分配给多个变量
有点像
选择@ var1 = 1,@ var2 = 2
在使用set时你必须使用单独的set语句(它是一种ANSI分配值的方式),即
设置@ var1 = 1
设置@ var2 = 2
我希望这会有所帮助
欢呼声
答案 4 :(得分:0)