當前位置:我的電腦網 > MyDiannao.Com > 數據庫學習

Sql中的set和select賦值方式的區別?

T-SQL中的變量分為局部變量和全局變量,局部變量的使用也是先聲明,再賦值。而全局變量由系統定義和維護,我們可以直接使用,但是一般不定義全局變量。

局部變量

在T-SQL中,局部變量的名稱必須以標記@作為前綴。

Declaer @variable_name DataType

其中@variable_name為變量名 DataType為數據類型。

局部變量的賦值有兩種方法:使用Set語句或Select語句。

set @variable_name = value

Selecte @variable_name = value

? SET賦值語句一般用戶賦給變量指定的數據變量

? Select賦值語句一般用于表中查詢數據,然后查詢的記錄多于一條,將把最后一條記錄的值賦給變量

 

Set

Select

同時對多個變量賦值

不支持

支持

表達式返回多個值

出錯

將返回的最后一個值賦給變量

表達式未返回值

變量被賦值為NULL值

變量保持原值

建議使用Set,原因是因為Set語句沒有結果,占用資源少,因此,給一個變量賦值時,使用Set效率更高。

\

 

注意:SELECT 也可以將標量子查詢的值賦給變量,如果標量子查詢不返回值,則變量被置為 null 值(此時與使用 SET 賦值是完全相同的)。
對標量子查詢的概念大家可能覺得陌生,下面舉個例子說明下(對比上面綠色部分):

1
2
3
4
5
declare @name varchar(128)
set @name = 'SELECT初始值'
select @name =(select name from fuzhiTEST where id = 4 )
print @name --正確運行:顯示NULL
GO
分享到:
[] [返回上一頁]
Copyright © 2010 - 2019MyDiannao.Com. All Rights Reserved .
粵ICP備10200428號
欢乐捕鱼