Skip to main content
Dynamics 365
  • 1 min read

Performing a CRM Data Bulk Delete


We recently received a question about how to write the code to delete all records returned from a query. Here’s the answer…

The following code example demonstrates how to delete bulk data from the Microsoft CRM 3.0 database. If you need to delete a very large amount of data, bulk delete may require a long period of time to complete. The main reason for that is cascading, which is triggered by the delete operation. If the entity instance that you are deleting has a system or parental relationship with other entity instances, the parent and all its children entity instances are deleted according to the cascading rules.

[C#]

using System;

 

using System.Collections.Generic;

 

using System.Text;

 

using DeleteAllCompetitors.CrmSdk;

 

 

 

namespace DeleteAllCompetitors

 

{

 

    class BulkDelete

 

    {

 

        static void Main(string[] args)

 

        {

 

            // Set up the CRM Service.

 

            CrmService service = new CrmService();

 

            service.Credentials = 

 

                System.Net.CredentialCache.DefaultCredentials;

 

 

 

            // Create the ColumnSet that indicates the fields to be retrieved.

 

            ColumnSet cols = new ColumnSet();

 

 

 

            // Set the properties of the ColumnSet.

 

            cols.Attributes = new string[] { "competitorid" };

 

 

 

            // Create the ConditionExpression.

 

            ConditionExpression condition = new ConditionExpression();

 

 

 

            // Create the query expression.

 

            QueryExpression query = new QueryExpression();

 

 

 

            // Set the query to retrieve accounts.

 

            query.EntityName = EntityName.competitor.ToString();

 

 

 

            // Create the request object.

 

            RetrieveMultipleRequest retrieive = new RetrieveMultipleRequest();

 

 

 

            // Set the properties of the request object.

 

            retrieive.Query = query;

 

 

 

            // Execute the request.

 

            RetrieveMultipleResponse retrieived = 

 

                (RetrieveMultipleResponse)service.Execute(retrieive);

 

            BusinessEntityCollection competitors = 

 

                retrieived.BusinessEntityCollection;

 

 

 

            for (int i = 0; i < competitors.BusinessEntities.Length; i++)

 

            {

 

                competitor entity = (competitor)competitors.BusinessEntities[i];

 

 

 

                // The EntityName indicates the EntityType 

 

                // of the object being deleted.

 

                service.Delete(EntityName.competitor.ToString(), 

 

                               entity.competitorid.Value);

 

 

 

            }

 

        }

 

    }

 

}

Inna Agranov

Get started with Dynamics 365

Drive more efficiency, reduce costs, and create a hyperconnected business that links people, data, and processes across your organization—enabling every team to quickly adapt and innovate.