Transact-SQL 可使用兩類變數:區域變數與全域變數。
使用者自訂,作用範圍**僅在程式內部**。常用於儲存查詢資料或程式執行過程暫存。必須以 @ 開頭,且必須先用 DECLARE 宣告後才可使用**。宣告形式:
DECLARE @變數名 變數類型 [@變數名 變數類型…]
變數類型可為 SQL Server 2000 支援所有資料類型或使用者自訂類型。DECLARE 詳細用法參見「4.6 其他命令」。
**不能像一般程式語言用「變數=值」賦值**。必須用 SELECT 或 SET 設定值:
SELECT @區域變數 = 值
SET @區域變數 = 值
id 並賦值declare @id char(10)
select @id = '10010001'
注意: 可在 SELECT 查詢時直接將欄位值賦給變數。範例 4-6:查詢編號 10010001 員工姓名與薪資,分別賦予 name、wage:
use pangu
declare @name char(30), @wage money
select @name = e_name, @wage = e_wage
from employee
where emp_id = '10010001'
select @name as e_name, @wage as e_wage
結果:e_name: 張三, e_wage: 8000.0000
關鍵字避免衝突: 資料庫語言與程式語言有關鍵字,命名表/欄位/變數/物件時應避免使用。SQL Server 關鍵字請參閱附錄。
SQL Server 系統內部使用,**作用範圍不限於某程式,任何程式均可隨時調用**。通常儲存 SQL Server 設定值與效能統計資料。用戶可在程式中用全域變數測試系統設定值或 T-SQL 命令執行後狀態值。詳細情況參見附錄。
注意: 全域變數**非使用者程式定義**,在伺服器級定義。**只能使用預先定義的全域變數**。引用時**必須以 @@ 開頭**。區域變數名稱**不可與全域變數名稱相同**,否則應用中會出錯。