For the same reason, this always worked:
EXEC sp_who2 active;
Compared to expected:
EXEC sp_who2 N'active';
Stored procedures can take an input string without single quotes and still treat it as a string if it does not have special characters, such as spaces or dashes.
, ?
, , , SQL Server (, , Sybase) . , " , ". , , , . (, .)
PS , ,
EXEC dbo.spTest @id = @id;
, (, - ).