O'Reilly logo
  • Dustin Waybright thinks this is interesting:

The first character must be a letter defined in the Unicode Standard 3.2 or an underscore (_), and cannot be a digit. However, there are two exceptions:

  • Variables must begin with an at sign (@).

  • Temporary tables or procedures must begin with a number sign (#).

From

Cover of Training Kit (Exam 70-461): Querying Microsoft® SQL Server® 2012

Note

This applies to variables created in the body of a procedure using a DECLARE statement, for instance, DECLARE @start_date DATE; SET @start_date = '20140101'. Then @start_date could be referenced in the WHERE predicate.