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.
Dig Deeper on Microsoft SQL Server Database Development
Related Q&A from Joe Toscano
Migrate DTS packages to SQL Server Integration Services with Migration Wizard and deploy SSIS packages in SQL 2005. Learn how to access DTS Designer ... Continue Reading
Can I call triggers in stored procedures or vice versa? Continue Reading
I have a table, let's call it AlarmTriggers and it has a Boolean field pulled into it. When my software writes to it the table doesn't set the field ... Continue Reading