Common DBMS table and column name restrictions

SQL Server 2000 DBMS table and column name restrictions are detailed by expert Joe Toscano

What are the common name restrictions on tables and columns in a database management system (DBMS)?
DBMS table and column names under SQL Server 2000 have a 1 through 128-byte limit and follow the rules established for identifiers.

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