SharePoint Column/Field Display Name vs Internal Name

In SharePoint, When we create a column on a site/list/document, It has two names:

  1.     Internal Name – which is the name given to it when it was created, and it won’t be changing.
  2.     Display Name – You can change the display name as many times as you want.

The best example to understand the internal name is the “Modified By” field which is having the internal name “Editor”. When you edit the column name and change it to something totally different, the internal name doesn’t change. But why should we care?

Well, Because:

  • When writing code that interacts with SharePoint’s object model, some methods requires the field’s Internal Name, and others the Display Name.
  • When working with Data Views, some third party controls, and custom Web parts – we must use the internal name

So, how to Identify the Internal SharePoint Column Name?

Important: Open your SharePoint site in Firefox/Google Chrome (IE does different encoding!)
  1. Go to List / Document Library Settings, click on the name of the column to modify it and in URL find the last parameter value (Field)get SharePoint field internal name
  2. You can also sort the List / Document Library column by clicking it, and check in URL for SortField parameter value.

What is the Best Practice in creating a site or list column?

Name them without any special characters or spaces.  After the column is created, rename it with the special characters or spaces. This way the internal name will be “clean”. E.g.

  • Display Name: My Column Name. Internal Name: MyColumnName

Here is the reference Table for SharePoint Internal naming characters

Character Internal Hex Code Character Internal Hex Code
~ _x007e_ : _x003a_
! _x0021_ “ _x0022_
@ _x0040_ | _x007c_
# _x0023_ ; _x003b_
$ _x0024_ ‘ _x0027_
% _x0025_ \ _x005c_
^ _x005e_ <  _x003c_
& _x0026_ >  _x003e_
* _x002a_ ? _x003f_
( _x0028_ , _x002c_
) _x0029_ . _x002e_
_ _ / _x002f_
+ _x002b_ ` _x0060_
_x002d_ _x0020_
= _x003d_
{ _x007b_
} _x007d_

SharePoint internal name length: Internal names are trimmed with 32 character length.


Change SharePoint internal column name: Is it possible to change Internal name of the column? Unfortunately, NO! without recreating the column, you can’t change the internal name of the field.

How to find an internal field name in SharePoint?

To get SharePoint internal column name programmatically using PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$Web= Get-SPWeb "https://sharepoint.crescent.com"
$list= $web.Lists.TryGetList("Risk Metrics")

#Get "Program Name" Field
$field = $list.fields | where {$_.Title -eq "Program Name"}

#Get Field Internal Name 
write-host $field.InternalName

Find Internal Names of All Fields using PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
#Get Internal Name of the columns
$web = Get-SPWeb "https://portal.crescent.com/" 

#Get the list
$list = $web.GetListFromURL("Lists/ChangeRequest/AllItems.aspx")

#Get display name and internal name of each field
foreach ($column in $list.Fields){
    $column | Select-Object -Property InternalName,Title
} 

Salaudeen Rajack

Salaudeen Rajack - Information Technology Expert with Two-decades of hands-on experience, specializing in SharePoint, PowerShell, Microsoft 365, and related products. He has held various positions including SharePoint Architect, Administrator, Developer and consultant, has helped many organizations to implement and optimize SharePoint solutions. Known for his deep technical expertise, He's passionate about sharing the knowledge and insights to help others, through the real-world articles!

7 thoughts on “SharePoint Column/Field Display Name vs Internal Name

  • Thank you so much, you saved the day

    Reply
  • You have brought up a very superb details, thanks for the post.

    Reply
  • What happens if you internal name is the same as the display name is the same as the relationships name. The relationships name shows title and access through your solution shows title as well.

    Reply
  • HI, what happens to internal names for columns like “F1” and such.. I mean, if i create a column “F1” (display name is F1), then the internal name is something else.. Are there any other columns other than the characters which you had put above, which get changed?

    Reply
  • In a List i have create a column named as “Shipping Address” and it it showing “Shipping%5Fx0020%5FAdress” in URL but according to you it should be “Shipping_x0020_Adress” .

    Reply
    • Its based on the browser. If you Click/Mouse over on the field in Internet Explorer, it encodes _ (Underscore) to %5F, but if you retrieve internal name either by sorting the field or by coding, it gives _ instead of %5F. You also try Firefox which always gives _ on both the scenario.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *