Recently, the IOTAP SharePoint Development Team developed a custom tool to copy list items between lists in SharePoint 2010 sites. Initially we used the SPListItem.Update() method to update the list item as shown in sample below

SPList olist = oweb.Lists.TryGetList(“ListName”);
SPListItem olistitem = olist.Items[1];
olistitem.Title = “Sample List Item”
olistitem.Update();
olist.Update();

This method did not meet our requirements since it updates the SharePoint built-in metadata fields like Modified Date, Modified by, version etc with current date, logged in user etc.

After a bit of research we found the SPListItem.SystemUpdate() method available in the SharePoint 2010 object model. This method updates only the custom metadata fields and not the built-in metadata fields.

Below is a sample code for using SPListItem.SystemUpdate() method

SPList olist = oweb.Lists.TryGetList(“ListName”);
SPListItem olistitem = olist.Items[1];
olistitem.Title = “Sample List Item”
olistitem.SystemUpdate();
olist.Update();

To learn more  about our Sharepoint 2010 services visit Sharepoint 2010.