變數
變數的宣告有兩種使用:「@」或「@@」符號開頭
@開頭的為「區域變數(Local Variables)」@@符號開始的為「系統函數」(它也是一種「全域變數」)
注意:
- 有些 Transact-SQL 系統函數的名稱開頭是兩個 at 符號 (
@@)。 雖然,在舊版 SQL Server 中,@@ 函數是作為全域變數,但 @@ 函數並不是變數,其行為也和變數不一樣。 @@ 函數是系統函數,他們的語法是遵照函數的規則。(例如:@@ERROR)- 您不能在檢視中使用變數。
- 對變數所做變更不會受到交易回復的影響。
宣告 T-SQL 變數
變數是利用 DECLARE 陳述式宣告在批次或程序的主體中,並利用 SET 或 SELECT 陳述式來指派值。
在宣告之後,所有變數都會初始化成
NULL,除非在宣告中有提供值。
範例
以DECLARE 建立名為 @counter 的區域變數,且其資料類型為 int。
1
declare @counter int
設定 T-SQL 變數的值
首次宣告變數時,其值會設為 NULL。
若要指派值給變數,使用 SET 陳述式。 這是將值指派給變數所慣用的方法。
1
2
3
4
5
6
--宣告兩個變數
declare @id int, @name nvarchar(20)
--變數賦值
set @id = 1
set @name = N'Rii'
變數的設定與顯示
- 設定:使用
SET或SELECT陳述式來指派值。
1
2
set @id = 5 --使用set賦值
select @id = 10 --使用select賦值
- 顯示:使用
SELECT顯示變數值
1
select @id
使用 SET 賦值
1
2
3
declare @id int --宣告變數
set @id = 2 --使用set給變數賦值
select @id --顯示變數的內容
使用 SELECT 賦值
1
2
3
declare @id int --宣告變數
select @id = 2 --使用select給變數賦值
select @id --顯示變數的內容
將 Select 的結果放入變數
1
2
3
4
5
6
7
8
9
/* 統計商品ID為1的販賣數量*/
--宣告count變數
declare @count int
--Select語法
select @count = sum(數量) --將 Select的數量結果放入 @count 變數
from 販賣資料
where 商品ID = 1
--顯示變數值
select @count
NSDN - 變數 (Transact-SQL)
NSDN - 系統函數 (Transact-SQL)
MSDN - DECLARE @local_variable (Transact-SQL)