<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Object name lengths on SQL Server? in Data Management Questions</title>
    <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537192#M30469</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Great, thanks for the additional advice guys!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-J&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Sep 2013 19:18:45 GMT</pubDate>
    <dc:creator>JasonBirch</dc:creator>
    <dc:date>2013-09-19T19:18:45Z</dc:date>
    <item>
      <title>Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537187#M30464</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all!&amp;nbsp; Get ready for a long first post...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We're in the progress of migrating to ArcSDE, starting with 10.1 running on SQL Server 2012 using an SDE-schema geodatabase.&amp;nbsp; One of the staff here has raised a concern about the maximum length of database name, schema owner, and feature class name in this scenario.&amp;nbsp; My initial implementation includes objects with compound names which are somewhat long (worst case):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-family:Courier New;"&gt;NanaimoSDE.Engineering.AdministrativeAreaBoundaryLine&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Searching indicates that at some point in the past this concern may have been valid, where SDE may have limited table names to 32 characters.&amp;nbsp; However, current guidance from the Defining Feature Class Properties help topic seems to be:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"The length of feature class and table names depends on the underlying database. The maximum name length for file geodatabase feature classes is 160 characters. Be sure to consult your DBMS documentation for maximum name lengths."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Digging deeper, the SDE_table_registry table defines the component parts of the feature class as:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]database_name: nvarchar(32)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;owner: nvarchar(32)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;table_name: sysname&amp;nbsp;&amp;nbsp; - where sysname is a system type equal to nvarchar(128)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With this in mind, it &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;appears&lt;/SPAN&gt;&lt;SPAN&gt; that we should be safe with our current structure, with the primary constraints being to keep any future schema owner names under 32 characters, and table names under 128 characters.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would really appreciate any guidance on whether this confidence is unfounded, and if there may be Esri or third-party components which still rely on shorter object names, and whether the total length of Database+Owner+Table is subject to any additional constraints.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I personally prefer to use descriptive object naming, but we're early enough in the implementation process that I can re-create the database and schema owners with shorter identifiers if required.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-J&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Sep 2013 20:46:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537187#M30464</guid>
      <dc:creator>JasonBirch</dc:creator>
      <dc:date>2013-09-18T20:46:56Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537188#M30465</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;There's "descriptive" and then there's "tediously long".&amp;nbsp; Unfortunately,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;that naming scheme drifts into the latter category.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ArcSDE was ported to SQL-Server from Oracle, and needs to maintain a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;EM&gt;least common denominator&lt;/EM&gt; on naming lengths across all RDBMS products.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The current constants used throughout ArcSDE code are:&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#define SE_MAX_COLUMN_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32&amp;nbsp; /* MAXIMUM COLUMN NAME LENGTH */ 
#define SE_MAX_TABLE_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 160 /* MAXIMUM TABLE NAME LENGTH */ 
#define SE_MAX_SCHEMA_TABLE_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp; /* MAXIMUN TABLE 'ONLY' NAME LENGTH */ 
#define SE_MAX_ALIAS_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32&amp;nbsp; /* MAXIMUM TABLE ALIAS LENGTH */ 
#define SE_MAX_ENTITY_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 256 /* MAXIMUM ENTITY TYPE LENGTH */ 
#define SE_MAX_HINT_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1024/* MAXIMUM DBMS HINT LENGTH */ 
#define SE_MAX_SCHEMA_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32&amp;nbsp; /* MAXIMUN SCHEMA NAME LENGTH */ 
#define SE_MAX_OWNER_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32&amp;nbsp; /* MAXIMUM TABLE OWNER NAME LENGTH */ 
#define SE_MAX_INDEX_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 160 /* MAXIMUM INDEX NAME LENGTH */ 
#define SE_MAX_GROUP_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 128 /* MAXIMUM GROUP NAME LENGTH */ 
#define SE_MAX_COLUMNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 /* MAXIMUM NUMBER OF COLUMNS */ 
#define SE_MAX_ANNO_TEXT_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 255 /* MAXIMUM ANNOTATION TEXT LENGTH */ 
#define SE_MAX_VERSION_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp; /* MAXIMUM VERSION NAME LENGTH */ 
#define SE_MAX_OSNAME_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp; /* MAXIMUM OPERATING SYSTEM NAME LENGTH */ 
#define SE_MAX_OSVERSION_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 128 /* MAXIMUM OPERATING SYSTEM VERSION LENGTH */ 
#define SE_MAX_DBMSVERSION_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 128 /* MAXIMUM DATABASE VERSION LENGTH */ 
#define SE_MAX_VERSION_INPUT_LEN&amp;nbsp;&amp;nbsp; 62&amp;nbsp; /* MAXIMUM USER-SUPPLIED VERSION NAME LENGTH */ 
#define SE_MAX_OBJECT_NAME_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 160 /* MAXIMUM OBJECT NAME LENGTH */&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;In practice the limits are generally one space *less* than the _LEN value (to allow for a NUL&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;terminator) -- although this does not apply to SE_MAX_SCHEMA_TABLE_LEN.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[Edited to format include file contents legibly]&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 23:19:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537188#M30465</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2021-12-11T23:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537189#M30466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Vince, I really appreciate you taking the time to provide a definitive answer!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From this, it looks like the table name in my example ( AdministrativeAreaBoundaryLine ) is pushing the limit on the SE_MAX_SCHEMA_TABLE_LEN constant.&amp;nbsp; This table is from the Esri Canada municipal data model, and we're trying to implement it with only critical changes.&amp;nbsp; Fortunately, I believe that it's the longest feature class, though there may be a couple related attachment tables that are longer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any advice on the database and schema names?&amp;nbsp; Am I correct in assuming that the SE_MAX_TABLE_LEN is the maximum length of DB+Schema+Table?&amp;nbsp; It appears that they (NanaimoSDE, Engineering) fit within the constraints of those constants.&amp;nbsp; I could re-build the DB using shorter identifiers like CoNSDE.Eng.* if necessary, but not sure the effort is warranted.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I often wonder if my predilection for longer names stems from early trauma sustained under 8.3 limits and arcane file naming conventions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-J&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 05:37:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537189#M30466</guid>
      <dc:creator>JasonBirch</dc:creator>
      <dc:date>2013-09-19T05:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537190#M30467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If I were you, I would refrain from incorporating "geometry type" in Feature Class names, unless you maintain multiple geometry types (polygon, polyline) for what are in essence a single Feature Class and need unique names... (which probably isn't best practice, if you need to have a "boundary line", you can set a legend on a polygon Feature Class to only display the outline, instead of maintaining a seperate Feature Class with polylines).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ArcCatalog displays geometry type (polygon, polyline, point), through it's usage of unique icons, so there is no need to include something like "Line" in a Feature Class name. This saves you at least 4 characters, and if you skip "Boundary" as well (which will be obvious in the context of a polyline feature class for "areas"), you save another 8.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;NanaimoSDE.Engineering.AdministrativeAreaBoundaryLine&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatives:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- NanaimoSDE.Engineering.AdministrativeAreaBoundary&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- NanaimoSDE.Engineering.AdministrativeArea&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 09:50:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537190#M30467</guid>
      <dc:creator>MarcoBoeringa</dc:creator>
      <dc:date>2013-09-19T09:50:29Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537191#M30468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I usually incorporate geometry type into my table names, but I only devote one&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;character to the task ("P/L/A" suffix).&amp;nbsp; I'll also use "Admin" for "Administrative"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and "Bound" or "Bnd" for "Boundary".&amp;nbsp; Then I have room to include capture&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;scale ("5m", "100k") in the names, without exceeding the 30-character limit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for Oracle compatibility.&amp;nbsp; I never bother with "SDE" in the database name.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 10:25:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537191#M30468</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2013-09-19T10:25:35Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537192#M30469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Great, thanks for the additional advice guys!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-J&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 19:18:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537192#M30469</guid>
      <dc:creator>JasonBirch</dc:creator>
      <dc:date>2013-09-19T19:18:45Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537193#M30470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Would it be possible for a developer to modify the SE_MAX_COLUMN_LEN to a greater amount?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Nov 2017 18:43:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537193#M30470</guid>
      <dc:creator>deleted-user-ZMHeMpwIlo8S</dc:creator>
      <dc:date>2017-11-14T18:43:44Z</dc:date>
    </item>
    <item>
      <title>Re: Object name lengths on SQL Server?</title>
      <link>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537194#M30471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No, that's an m4 macro constant in an include file (.h) within the source tree.&amp;nbsp; Even if Esri still shipped the 'C' API, changing it in your install would have no effect on the Esri binaries (except where doing so corrupted structures, in which case it &lt;STRONG&gt;&lt;EM&gt;would&lt;/EM&gt;&lt;/STRONG&gt; have an effect -- bizarre segmentation violations and pointer alignment exceptions in your code).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- V&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Nov 2017 19:00:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/object-name-lengths-on-sql-server/m-p/537194#M30471</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2017-11-14T19:00:01Z</dc:date>
    </item>
  </channel>
</rss>

