SQL Server中SET賦值和SELECT賦值的區別

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

相關文章
相關標籤/搜索