TSQL Variable Scope fun finding

最近同事 發現了一個有趣既 TSQL behaviour
在一般既情況下 Variable 應該是有一個scope 的
如果個Variable 是 Declare 在 If statement 入面
那麼在IF Statement 出面用這個variable 應該會 Throw Error 的..
以下的TSQL 執行之後 你做會出現什麼結果呢?

IF 1 = 1
BEGIN 
  DECLARE @insideIf nvarchar(50) = 'inside'
END
SELECT insideIf

居然會output inside

是不是十分surprise 呢?

Chi Yau
Chi Yau
Software Engineer

Interested on Learning new stuff and experience sharing