Skip to main content What is Dynamics 365? Guided tours Customer stories Try our products Build your own agents CRM ERP Sales Service Sales Customer Insights Customer Service Contact Center Field Service Supply Chain Management Commerce Finance Project Operations Human Resources Business Central Pricing Business application topics Training & certifications Migrate to the cloud Documentation Events Dynamics 365 Blog Product updates Onboarding and implementation Community Find a partner Software Development Companies Partner resources Microsoft Marketplace Product documentation Technical support On-premises product support Contact us Try for free Sign in
  • 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.