Home [SQL] 變數
Post
Cancel

[SQL] 變數

變數

變數的宣告有兩種使用:「」或「@@」符號開頭

  1. 開頭的為「區域變數(Local Variables)」
  2. @@符號開始的為「系統函數」(它也是一種「全域變數」)

注意:

  • 有些 Transact-SQL 系統函數的名稱開頭是兩個 at 符號 (@@)。 雖然,在舊版 SQL Server 中,@@ 函數是作為全域變數,但 @@ 函數並不是變數,其行為也和變數不一樣。 @@ 函數是系統函數,他們的語法是遵照函數的規則。(例如:@@ERROR)
  • 您不能在檢視中使用變數。
  • 對變數所做變更不會受到交易回復的影響。

宣告 T-SQL 變數

變數是利用 DECLARE 陳述式宣告在批次或程序的主體中,並利用 SETSELECT 陳述式來指派值。

在宣告之後,所有變數都會初始化成 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'

變數的設定與顯示

  • 設定:使用 SETSELECT 陳述式來指派值。
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)

This post is licensed under CC BY 4.0 by the author.