程式會直接跳到GOTO所指定的標籤位置,中間跳過的區域全都不執行。 結構複雜的程式碼非常不建議使用,因為容易造成流程混亂! 如需進行流程控制,建議使用IF條件判斷較佳。 語法 Label: --設定標籤 /*很多行程式碼*/ GOTO Label --跳到標籤 /*很多行程式碼*/ 範例1:GOTO用於循環 declare @i int = 1 --宣告變數i,初始...
[SQL] While 迴圈
設定重複執行 SQL 陳述式或陳述式區塊的條件。 只要符合指定的條件,就會重複執行這些陳述式。 您可以在迴圈內,利用 BREAK 和 CONTINUE 關鍵字來控制 WHILE 迴圈陳述式的執行情況。 Break:可以無條件的結束 while 語法形成的迴圈(結束迴圈)。 Continue:則會忽略以下的程式而從迴圈的開始處重新執行(開始下一個的...
[SQL] Begin End 區塊
BEGIN…END 語句簡介 BEGIN...END語句用來定義語句區塊,語句區塊由一組一起執行的SQL語句組成。 語句區塊也稱為「批次處理」。(可以定義一系列同時執行的 T-SQL 陳述句) 換句話說,如果語句是句子,則BEGIN...END語句允許定義段落。 (如果有多句陳述句要一起執行就應該使用BEGIN END 包起來) 語法 BEGIN { s...
[SQL] If Else
IF @i > 10 BEGIN --條件成立 END ELSE BEGIN --條件不成立 END 如果 Begin End 中間只有單行程式碼,Begin End可省略不打。 範例1 if 1=1 print 'true' else print 'false' 範例2 IF DATENAME(weekday, GETDATE())...
[SQL] 變數
變數 變數的宣告有兩種使用:「@」或「@@」符號開頭 @開頭的為「區域變數(Local Variables)」 @@符號開始的為「系統函數」(它也是一種「全域變數」) 注意: 有些 Transact-SQL 系統函數的名稱開頭是兩個 at 符號 (@@)。 雖然,在舊版 SQL Server 中,@@ 函數是作為全域變數,但 @@ 函數並不是變數,其行為也和...
[SQL] Stored Procedure 預存程序的變數
在預存程序中使用變數時,必須要先宣告。 在Declare後宣告變數,變數名稱要以「@」為開頭,以Set來給變數賦值。 create procedure uspTest --定義參數 as declare --宣告變數 begin --處理內容 end 範例 create or alter proc uspTest --定義參數 @nam...
[SQL] Stored Procedure 預存程序的回傳值 (Return)
SQL SERVER 的預存程序可以用Return語法來停止預存程式,並傳回一個整數值。 Return無法傳整數以外的型態,也不能傳回null值。 要回傳資料給叫用端,有幾下幾種方式: 在最後一行使用 SELECT 語法回傳表格資料 使用輸出參數(Output Parameter)的方式回傳資料 使用 RETURN 語法回傳一個整數型別(Int32)的狀態碼 範...
[SQL] Stored Procedure 預存程序的參數
預存程序的參數有: Input 輸入參數 Output 輸出參數 create proc uspGetCount --定義參數 @id int = 1, --輸入參數 @count int output --輸出參數(要加output) as begin --處理內容(SQL語句) end 1. Input 輸入參數 Input 輸入參數:預...
[SQL] Stored Procedure 預存程序的執行方法 (Exec)
執行預存程序要使用execute語法(可以簡寫為exec),在execute後面寫要執行的預存程序的名稱。 exec 預存程序名稱 @變數1 = '值1', @變數2 = '值2' 執行方式 --無參數 exec stored_porcedure --以位置名稱(必須按照SP變數定義的順序) exec stored_porcedure value1, value2,... --以...
[SQL] Stored Procedure 預存程序的建立
語法 create procedure 預存程序名稱 --宣告參數 (輸入參數、輸出參數) as declare --宣告變數 begin --處理內容 end 範例 --製作統計所指定商品ID的販賣數量的預存程序 create procedure uspGetSum @id int, --要傳入的參數 @sum int output --輸出參...