When I write
DECLARE @x INT
Is there a way to check whether the variable @x has already been declared or not?
IF you try to access a variable that has not yet been defined, the T-SQL Script will give you an error telling you the variable isn't defined.
Msg 137, Level 15, State 2, Line 5 Must declare the scalar variable "@x".
No.
The declaration of variables in tsql does not follow the code path and use scope like perhaps other languages does.
This code shows that @xx
exists but is unassigned even though the declaration was never executed.
if 1 = 0
begin
declare @xx int = 10
end
else
begin
declare @yy int = 20
end
print coalesce(@xx, -100)
print coalesce(@yy, -200)
Result
-100
20