1、SELECT能夠在一條語句裏對多個變量同時賦值,而SET只能一次對一個變量賦值html
SELECT @VAR1='Y',@VAR2='N' -- 而SET要達到一樣的效果,須要: SET @VAR1='Y' SET @VAR2='N'
2、表達式返回多個值時,用SET將會出錯,而SELECT將取最後一個值sql
----如下假定Permission表有多個記錄 SELECT @VAR1 = IsRight FROM Permission --將取最後一個值 SET @VAR1 = IsRight FROM Permission --將報錯
3、表達式無返回值時,用SET將置變量值爲NULL,用SELECT變量將保持原值code
SET @VAR1 = '初始值' ----如下假定查詢到的記錄爲空 SELECT @VAR1 = IsRight FROM Permission where id=567 --此時@VAR1爲'初始值' SET @VAR1 = (SELECT IsRight FROM Permission where id=567) --此時@VAR1爲NULL
4、使用標量子查詢時,若是無返回值,SET和SELECT同樣,都將置爲NULLhtm
----如下假定Permission記錄爲空 SET @VAR1 = '初始值' SELECT @VAR1 =(SELECT IsRight FROM Permission ) --此時@VAR1爲NULL SET @VAR1 = ( SELECT IsRight FROM Permission) --此時@VAR1爲NULL
參考資料:SQL Server中SET賦值和SELECT賦值的區別 http://www.studyofnet.com/news/1136.html get