Da @A nie deklariert wird, sollte der SQL-Server einen Fehler auslösen, tut dies aber nicht. Warum das?Warum wird die Variable innerhalb der IF-Anweisung deklariert, selbst wenn die Bedingung als false ausgewertet wird?
DECLARE @i int = 1;
IF @i > 10
BEGIN
DECLARE @A int = 100;
END
PRINT @A; // doesn't return any result
thanx
+1: Gute Frage. –