SQLServer局部變量和全局變量介紹05-29學習筆記

變量

數據在內存中存儲能夠變化的量叫變量。爲了在內存中存儲信息,用戶必須指定存儲信息的單元,併爲了該存儲單元命名,sql

以方便獲取信息,這就是變量的功能。Transact-SQL可使用兩種變量,一種是局部變量,另一種是全局變量。數據庫

局部變量和全局變量的主要區別在於存儲的數據帳做用範圍不同。編程

 

一、局部變量

局部變量是用戶可自定義的變量,它的做用範圍僅在程序內部。局部變量的名稱是用戶自定義的,服務器

命名的局部變量名要符合SQLserver2012標識符命名規則,局部變量名必須以@開頭。網絡

1.一、聲明局部變量

語法:ide

DECLARE
{
@varaible_name datatype [,...n]
}

參數說明:sqlserver

@varaible_name:局部變量的變量名spa

datatype:局部變量使用的數據類型,能夠除text,ntext,image類型外全部的系統數據類型和用戶自定義數據類型。3d

例如,聲明變量@testnamecode

SQL語句以下:

declare @testname nvarchar(10)

 

1.二、爲局部變量賦值

爲變量賦值的方式通常有兩種,一種是使用select語句,一種是使用set語句。

使用select語句賦值SQL:

use db_tse
declare @testname nvarchar(10)
select @testname=stname from Student where id='1001'
print @testname

說明:首先聲明變量testname而後student表裏面的id=1001這條數據的stname賦值給@testname,最後print打印出來

declare @a int
select @a=1
print @a

給多個變量賦值:

declare @a int,@b nvarchar(10),@c int
select @a=1,@b='Tse先生',@c=2

使用set語句賦值SQL:

簡單的賦值例子:

declare @testname nvarchar(20)
set @testname = 'Are you ok?'
print @testname

 

二、全局變量

全局變量是SQLserver系統內部事先定義好的變量,不用用戶參與定義,對用戶而言,其做用範圍並不侷限於某一程序,

而是任何程序都可隨時調用。全局變量一般用於存儲一些SQLserver的配置設定值和效能統計數據。

(1)@@CONNECTIONS:記錄自最後一次服務器啓動以來,全部針對這臺服務器進行的鏈接數目,包括沒有鏈接成功的嘗試。

(2)@@CPU_BUSY:記錄自上次啓動以來嘗試的鏈接數,不管鏈接成功仍是失敗,都以ms爲單位的CPU工做時間。

(3)@@CURSOR_ROWS:返回本次服務器鏈接中,打開遊標取出數據行的數目。

(4)@@DBTS:返回當前數據庫中timestamp數據類型的當前值。

 

(5)@@ERROR:返回上一條T-SQL語句所返回的錯誤代碼。若是sqlserver服務器執行完上一條語句後,執行成功沒有錯誤,則返回@@ERROR的值爲0。

 

 (6)@@FETCH_STATUS:返回上一次使用遊標FETCH操做返回的狀態值,且返回值爲整型。

返回值 描述
0 FETCH語句成功
-1 FETCH語句失敗或此行不在結果集中
-2 被提取的行不存在

 

(7)@@IDENTITY:返回最近一次插入的identity列的數值,返回值是numeric。

 (8)@@IDLE:返回以ms爲單位計算SQLserver服務器自最近一次啓動以來處於停頓狀態的時間。

(9)@@IO_BUSY:返回以ms爲單位計算的SQLserver服務器自最近一次啓動以來花在輸入和輸出上的時間。

(10)@@LOCK_TIMEOUT:返回當前對數據鎖定的超時設置。

(11)@@PACK_RECEIVED:返回sqlserver服務器自最近一次啓動以來一共從網絡上接收數據分組的數目。

(12)@@PACK_SENT:返回sqlserver服務器自最近一次啓動以來一共向網絡上發送數據分組的數目。

(13)@@PROCID:返回當前存儲過程的ID標識。

(14)@@REMSERVER:返回在登陸記錄中記載遠程sqlserver服務器的名字

(15)@@ROWCOUNT:返回上一條sql語句所影響到數據行的數目。對全部不影響數據庫數據的SQL語句,這個全局變量返回的結果是0。在進行數據庫編程時,常常要檢測@@ROWCOUNT的返回值,以便明確所執行的操做是否達到了目標。

(16)@@SPID:返回當前服務器進程的ID標識。

(17)@@TOTAL_ERRORS:返回自sqlserver服務器啓動以來,所遇到讀寫錯誤的總數。

(18)@@TOTAL_READ:返回自sqlserver服務器啓動以來,讀磁盤的次數。

(19)@@TOTAL_WRITE:返回自sqlserver服務器啓動以來,寫磁盤的次數。

(20)@@TRANCOUNT:返回當前鏈接中,處於活動狀態事務的數目。

(21)@@VERSION:返回當前sqlserver服務器安裝日期、版本,以及處理器的類型。

相關文章
相關標籤/搜索