Naming conventions
- Last Updated: February 11, 2026
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
When planning for maximum transparency across OpenEdge databases and MS SQL Server data sources, be sure to consider the restrictions that each places on naming data source objects when you perform a OpenEdge DB to MS SQL Server conversion. The following table describes these restrictions, and the notes that follow discuss how the DataServer resolves differences between OpenEdge and MS SQL Server database naming conventions.
| Category | OpenEdge | MS SQL Server |
|---|---|---|
| Alphanumeric characters | A-Z or a-z 0-9 | All alphanumeric characters from the character set that you defined for your MS SQL Server |
| Special characters | Allows $, &, #, %, -, and _1 | Allows @, $, #, _, ¥, and £2 |
| Initial character | Alphabetic only | Alphabetic only |
| Maximum length of object name | 32 characters | 24 characters3 |
| Keywords | Not allowed4 | Not allowed4 |
| Unique table names | Required5 | Required6 |
1 Although OpenEdge allows you to use the ampersand (&) in
database-object names, the OpenEdge development tools use this character internally to
denote preprocessor directives.
2 When the DataServer encounters characters not supported by OpenEdge in a
sequence, table, index, or field name, it converts them to underscores ( _ ) in the data
source. For example, the data source table name emp@status becomes emp_status in the schema
holder. If the unsupported character is at the beginning of an object name, the DataServer
substitutes a lowercase z. Also, the DataServer strips @ symbols from stored procedure
parameter names.
3 Object names are limited to 32 characters. When you use the OpenEdge DB to MS
SQL Server utility to perform a database conversion, however, the utility truncates object
names to 24 characters in order to accommodate the suffix characters that it appends when it
finds nonunique names, array fields, sequences, triggers, and so forth. If you intend to use
the OpenEdge DB to MS SQL Server utility, be sure to limit object names to 24 characters to
accommodate this name resolution during conversion.
4 OpenEdge and MS SQL Server databases contain restrictions against using
keywords as database object names. If a data source object name consists of an OpenEdge
keyword, the DataServer appends an underscore character ( _ ) to the name. For example, an
object named "each" becomes "each_"
5 MS SQL Server qualifies nonunique table names to make them unique (see your
data source documentation for details); however, OpenEdge still regards these qualified
names as nonunique. The DataServer resolves nonunique table names for you as follows: when
OpenEdge encounters matching table names while creating or updating a schema holder, it
names the second and subsequent tables table-1, table-2, etc. For example, if
OpenEdge encounters a table named lee.employee (the employee table owned by the user lee)
that is the second instance of the name in the data source, it names the corresponding table
in the schema holder employee-1.Keep in mind that when resolving naming conventions, the
DataServer can append up to three characters to an object name: two in the case of a
nonunique name and one in the case of an OpenEdge keyword. Therefore, you should limit your
object names to 29 characters so that you do not exceed the OpenEdge 32-character limit for
object names in the schema holder.
6 MS SQL Server allows you to qualify an object name by adding the database
name, the owner's name, or the table name (for columns).