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

來源:互聯網
上載者:User

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

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 賦值是完全相同的)。
對標量子查詢的概念大家可能覺得陌生,下面舉個例子說明下(對比上面綠色部分):

declare @name varchar(128)
set @name = 'SELECT初始值'
select @name =(select name from fuzhiTEST where id = 4 )
print @name --正確運行:顯示NULL
GO



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.