MS SQL Server 常用 T-SQL 指令與函數分類速查表,涵蓋資料操作、定義、控制、交易、程序化、統計/日期/系統函數,適合開發/維運快速查閱。
-- 局部變數
DECLARE @id CHAR(10); SET @id = '10010001'; -- 或 SELECT @id = '10010001';
-- 全域變數(@@ 開頭,系統預定義)
SELECT @@VERSION, @@ROWCOUNT, @@IDENTITY, @@ERROR, @@TRANCOUNT;
-- IF ELSE
IF @x > @y PRINT 'x > y' ELSE IF @y > @z PRINT 'y > z' ELSE PRINT 'z >= y';
-- CASE
UPDATE employee SET e_wage = CASE
WHEN job_level = '1' THEN e_wage * 1.08
WHEN job_level = '2' THEN e_wage * 1.07
WHEN job_level = '3' THEN e_wage * 1.06
ELSE e_wage * 1.05 END;
-- WHILE CONTINUE BREAK
WHILE @x < 3 BEGIN ... END;
-- WAITFOR
WAITFOR DELAY '01:02:03'; -- 等待 1時2分3秒
WAITFOR TIME '23:08:00'; -- 等待至 23:08
SELECT * FROM table WHERE col LIKE '[a-z]%' OR col LIKE '[^F-M]%';
SELECT * FROM t1 LEFT JOIN t2 ON t1.id *= t2.id; -- 舊式外部聯接(不建議)
SELECT * FROM t1 UNION ALL SELECT * FROM t2;
| 函數 | 用途 |
|---|---|
| APP_NAME() | 目前應用程式名稱 |
| COALESCE(val1, val2, ...) | 回傳第一個非 NULL 值 |
| COL_LENGTH('table','col') | 欄位定義長度 |
| COL_NAME(table_id, col_id) | 欄位名稱 |
| DATALENGTH(expr) | 資料實際位元組長度 |
| DB_ID(['db_name']) | 資料庫 ID |
| DB_NAME(db_id) | 資料庫名稱 |
| HOST_ID() / HOST_NAME() | 用戶端機器 ID/名稱 |
| IDENTITY(型別, seed, incr) | SELECT INTO 產生身分欄 |
| ISDATE(expr) | 判斷是否合法日期 |
| ISNULL(expr, replacement) | NULL 替換 |
| ISNUMERIC(expr) | 判斷是否合法數值 |
| NEWID() | 產生 UNIQUEIDENTIFIER |
| NULLIF(expr1, expr2) | 相等回傳 NULL,否則 expr1 |