When I tried to update my Microsoft Dynamics CRM 2015 (DB 7.0.03543) to the 0.1 version (DB 7.0.1.129) it came with this error at the DB update:
Info| Database update install failed for orgId = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Continuing with other orgs. Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlClient.SqlException: The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction. Uncommittable transaction is detected at the end of the batch. The transaction is rolled back. at Microsoft.Crm.Metadata.IndexAndConstraintManagementService.RecreateIndexesInternal(Dictionary`2 indexesToRecreate, IIndexMetadataProvider metadata, ISqlExecutionContext sqlContext) at Microsoft.Crm.Metadata.IndexAndConstraintManagementService.RecreateIndexes(IIndexMetadataProvider metadata, ISqlExecutionContext sqlContext, Func`2 recreateIndex) at Microsoft.Crm.Setup.IndexAndConstraintUpgradeService.RestoreIndexesAndConstraintsInternal(IIndexMetadataProvider metadata, ISqlExecutionContext sqlContext, Func`2 recreateIndex) at Microsoft.Crm.Setup.MetadataPatchService.ProcessIndexDiffs(IIndexDiffManager indexDiffManager, ISqlExecutionContext context, HashSet`1 newEntities) at Microsoft.Crm.Setup.MetadataPatchService.ProcessDiffSet(MetadataPatchDiffSet diffSet, Int32 lcid, ExecutionContext context) at Microsoft.Crm.Setup.MetadataPatchService.ProcessMetadataDiffFile(String targetVersion, ExecutionContext context) at Microsoft.Crm.Setup.DiffBuilder.UpdateMetadata(String targetVersion) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.Crm.Setup.Database.DllMethodAction.Execute(Guid organizationId) at Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseInfo releaseInfo, Boolean isInstall) at Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32 languageCode, String configurationFilePath, Boolean upgradeDatabase, Boolean isInstall)
The solution
1. Make a backup of the file MetadataDiffs.xml from “C:\Program Files\Microsoft Dynamics CRM\Setup\Serviceability\Latest\Actions_Org\Install”
2. Open the file MetadataDiffs.xml from “C:\Program Files\Microsoft Dynamics CRM\Setup\Serviceability\Latest\Actions_Org\Install”
3. Remove the entry about the index “cndx_BusinessDataLocalizedLabel”. This is found at the very end of the file:
<index name="cndx_BusinessDataLocalizedLabel">
<entityid>4ba1569e-3c9c-4d9f-99ea-b61fb08d7f97</entityid>
<isclustered>1</isclustered>
<isunique>1</isunique>
<indextype>6</indextype>
<isprimarykey>0</isprimarykey>
<attributes>
<attribute attributeid="d88e1df3-b5b3-42f3-9ffa-007f22951dd4" issystemmanaged="1" order="0" />
<attribute attributeid="bb23d3c8-8d18-40d3-9519-66101a8cae34" issystemmanaged="1" order="1"/>
<attribute attributeid="976e1053-5faa-4c3f-be6e-669acfec9d5a" issystemmanaged="1" order="2" />
<attribute attributeid="e81341c4-4d4a-4977-98eb-6597fcde2cc4" issystemmanaged="1" order="3" />
</attributes>
</index>
4.Close Deployment Manager
5. Start Deployment Manager
6. Start the organization update from Deployment manager.
7. Run the following query on the organization DB to manually recreate the index.
IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'cndx_BusinessDataLocalizedLabel' AND OBJECT_NAME(object_id) = 'BusinessDataLocalizedLabelBase') DROP INDEX [cndx_BusinessDataLocalizedLabel] ON [BusinessDataLocalizedLabelBase];
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE NAME = 'cndx_BusinessDataLocalizedLabel' AND OBJECT_NAME(object_id) = 'BusinessDataLocalizedLabelBase')
BEGIN TRY
CREATE UNIQUE CLUSTERED INDEX [cndx_BusinessDataLocalizedLabel] ON [BusinessDataLocalizedLabelBase]([ObjectId] ASC, [ObjectIdTypeCode] ASC, [ObjectColumnNumber] ASC, [LanguageId] ASC) WITH (FILLFACTOR = 80, MAXDOP = 4, SORT_IN_TEMPDB = ON, ONLINE = ON)
END TRY
BEGIN CATCH
CREATE UNIQUE CLUSTERED INDEX [cndx_BusinessDataLocalizedLabel] ON [BusinessDataLocalizedLabelBase]([ObjectId] ASC, [ObjectIdTypeCode] ASC, [ObjectColumnNumber] ASC, [LanguageId] ASC) WITH (FILLFACTOR = 80, MAXDOP = 4, SORT_IN_TEMPDB = ON)
END CATCH
8. Restore the file MetadataDiffs.xml to its original state using the backup taken at step 1.
And with this the CRM 2015 version will be 7.0.1.129.
Original source:
http://www.vogelgesang-consulting.de/content/update-01-microsoft-dynamics-crm-2015
Enjoy it!