The first character must be one of the following:
- A letter as defined by the Unicode Standard 2.0
The Unicode definition of letters includes Latin characters from A through Z in addition to letter characters from other languages.
- The underscore (_), "at" sign (@) or number sign (#)
Certain symbols at the beginning of an identifier have special meaning in SQL Server. An identifier beginning with the "at" sign denotes a local variable or parameter. An identifier beginning with a number sign denotes a temporary table or procedure. An identifier beginning with double number signs (##) denotes a global temporary object.
Some Transact-SQL functions have names that start with double at signs (@@). To avoid confusion with these functions, it is recommended that you do not use names that start with @@.
Subsequent characters can be any of the following:
- Letters as defined in the Unicode Standard 2.0
- Decimal numbers from either Basic Latin or other national scripts
- The "at" sign, dollar sign ($), number sign, or underscore
The identifier must not be a Transact-SQL reserved word. SQL Server reserves both the uppercase and lowercase versions of reserved words. Embedded spaces or special characters are not allowed although you will see these objects in good old Northwind with names that include embedded spaces. You'll have to access them by enclosing them in brackets.
This was first published in May 2006