Create an inline aspx page in /15/template/layouts on the SharePoint server to update the column. A sample aspx page is below. It updates from one column to another in the same list. Run it on SharePoint QA with one list item id to make sure it works for you and does not trigger any workflow or updates the modified fields. Once tested, use the for loop on the list items to update all. Also make sure listItem[srcFieldInternalName]
returns the existing field value correctly.
<%@ Page language="c#" enableSessionState="true" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="Microsoft.SharePoint.Workflow" %>
<script language="c#" runat="server">
protected void Page_Load(object sender, System.EventArgs e)
{
using (SPSite oSiteCollection = new SPSite("site_url"))
{
using (SPWeb oWebsite = oSiteCollection.OpenWeb())
{
oWebsite.AllowUnsafeUpdates = true;
SPList list = oWebsite.Lists["list_name"];
EnableWorkflow(oWebsite, list, false);
SPListItem listItem = list.GetItemById(listItemId);
//SPListItemColleciton listItemColl = list.GetItems();
//foreach(SPListItem listItem in listItemColl) {}
listItem["destinationFieldInternalName"] = listItem["sourceFieldInternalName"];
listItem.SystemUpdate(false);
EnableWorkflow(oWebsite, list, true);
oWebsite.AllowUnsafeUpdates = false;
}
}
}
private void EnableWorkflow(SPWeb web, SPList list, bool Enable)
{
foreach (SPWorkflowAssociation Association in list.WorkflowAssociations)
{
Association.Enabled = Enable;
list.Update();
web.Update();
}
}
</script>