Why DECLARE statement is making declared variables to be global?
For example:
SET NOCOUNT ON
GO
DECLARE @LoopCounter TINYINT = 3
WHILE @LoopCounter <> 0
BEGIN
DECLARE @TempDataSource TABLE ([ID] TINYINT)
SELECT [ID]
FROM @TempDataSource
INSERT INTO @TempDataSource ([ID])
VALUES (1)
,(2)
,(3)
SET @LoopCounter = @LoopCounter - 1
END
SET NOCOUNT OFF
GO
Gives me:
Should it returns nothing in all cases?