T-SQL

  • 2079
  • 0
  • SQL
  • 2014-12-10

摘要: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分才會執行