兩大分類
- 全域變數:`@@` 開頭,系統定義,整個實例可見,唯讀(如 `@@ROWCOUNT`、`@@VERSION`)。
- 區域變數:`@` 開頭,使用者定義,批次/SP/函數內有效,可賦值。
範例:`DECLARE @i INT = 1; SELECT @i, @@VERSION;`(圖 1)。

區域變數三大用途
- 迴圈計數/控制:`WHILE @i < 10 SET @i += 1`(圖 2)。

- 流程控制旗標:`IF @flag = 1 BEGIN ... END`(圖 3)。

- 暫存中間結果:`SELECT @max_id = MAX(id) FROM t;` 供後續語句使用。