摘要:T-SQL
註解
單行註解
--
多行註解
/* 內容 */
變數宣告
區域變數 @ 全域變數 @@
宣告
DECLARE @ABC int
利用SET指派
SET @ABC = 1
SET @ABC = 1 , @BCD = 2
同時宣告
DECLARE @ABC int = 1
EXAMPLE
DECLARE @ABC int = 1
SET @ABC = @ABC + 8 --不寫SET過不了 SELECT @ABC = @ABC + 8 沒用
SELECT @ABC
從資料表取資料給變數
--宣告區--
DECLARE @ABC int = 1
--從TABLE塞資料--
SELECT @ABC = @ABC + nodeid
FROM SYS_Nodes
--選取值--
SELECT @ABC as id
注意:若是變數未宣告初值或內容為空值(null), 空值與其他字串連在一起,最後結果仍會是空值。
全域變數(系統定義)
全域變數說明 | 用途說明 |
---|---|
@@ROWCOUNT | 紀錄使用者最後一次執行SQL敘述式所影響的筆數 |
@@ERROR | 記錄使用者執行SQL敘述所發生的錯誤代碼 |
@@VERSION | 紀錄SQL SERVER版本 |
@@LANGUAGE | SQL SERVER使用的語言 |
@@SERVERNAME | 紀錄目前連SQL SERVER的個體名稱 |
@@SERVICENAME | 執行個體名稱 |
@@CONNECTIONS | SQL啟動之後嘗試累積連線次數,不論成功失敗 |
@@MAX_CONNECTIONS | 同時可連線的最大數量 |
流程控制
IF - ELSE ( 單一敘述式)
EX 1:
IF (2 > 3)
SELECT '123'
ELSE
SELECT '456'
EX 2:
IF (2 > 3)
SELECT '123'
SELECT '789' --這個區塊非單一敘述 不可用IF ELSE
ELSE
SELECT '456'
若EX2 修改成這樣就可以了 (使用 BEGIN END)
IF (2 > 3)
BEGIN --這個區塊非單一敘述 不可用IF ELSE
SELECT '123'
SELECT '789'
END
ELSE
SELECT '456'
IF - ELSE IF -ELSE IF
IF(判斷式)
敘述式
ELSE IF (判斷式)
敘述式
敘述式也是單一敘述式
CASE WHEN THEN END
SELECT
聯絡人 + CASE 聯絡人性別
WHEN '男' THEN '先生'
WHEN '女' THEN '小姐'
ELSE '敬啟者'
END
FROM 客戶
或
SELECT
聯絡人 + CASE
WHEN 聯絡人性別= '男' THEN '先生'
WHEN 聯絡人性別 = '女' THEN '小姐'
ELSE '敬啟者'
END
FROM 客戶
WHILE
WHILE(敘述式)
BEGIN
IF(敘述式)
CONTINUE
ELSE
BREAK
END
WAITFOR Delay
WAITFOR DELAY '01:30:00' --延遲1小時30分後在往下執行
WAITFOR TIME '01:30:00' --凌晨1點30分才會執行