第十四天。
在 SQL 中,可以使用 DECLARE
宣告變數,方便作為查詢的條件或查詢的預設值使用。
使用 DECLARE
搭配 @
符號宣告變數,並設定型別。
使用 SET
設定變數的值。
範例:
DECLARE @QueryID AS VARCHAR(20); -- 宣告變數與型別
SET @QueryID = '00001'; -- 設定變數值
SELECT ClassID, ClassName, ClassType
WHERE ClassID = @QueryID -- 相當於 WHERE ClassID = '00001'
更簡短的宣告方式如下:
DECLARE @QueryID2 AS VARCHAR(20) = 'ABCDE';
根據 Impact of SQL Variables on Performance ,使用變數作為條件式時,可能會導致執行計畫判斷時更容易誤判預測的資料量,而導致查詢效能的降低。解決方式是將放入 sp_executesql
參數化,讓 Query Optimizer 能正確預測資料量。
若宣告的變數作為查詢、連接條件,使查詢範圍大幅減少時,還是可以加快連接的速度。