Export (0) Print
Expand All

Perform Bulk Delete

banner art

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;

            try
            {
                // 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 retrieve = new RetrieveMultipleRequest();

                // Set the properties of the request object.
                retrieve.Query = query;

                // Execute the request.
                RetrieveMultipleResponse retrieved = 
                    (RetrieveMultipleResponse)service.Execute(retrieve);
                BusinessEntityCollection competitors = 
                    retrieved.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);

                }
            }  
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                Console.WriteLine(ex.Message + "." + ex.Detail.InnerText);
            }
        }
    }
}

[Visual Basic .NET]

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports BulkDelete_VB.CrmSdk

Namespace DeleteAllCompetitors
    Class BulkDelete
        Shared Sub Main(ByVal args As String())
            ' Set up the CRM Service.
            Dim service As New CrmService()
            service.Credentials = _
                System.Net.CredentialCache.DefaultCredentials

            Try
                ' Create the ColumnSet that indicates 
                ' the fields to be retrieved.
                Dim cols As New ColumnSet()

                ' Set the properties of the ColumnSet.
                cols.Attributes = New String() {"competitorid"}

                ' Create the ConditionExpression.
                Dim condition As New ConditionExpression()

                ' Create the query expression.
                Dim query As New QueryExpression()

                ' Set the query to retrieve accounts.
                query.EntityName = EntityName.competitor.ToString()

                ' Create the request object.
                Dim retrieve As New RetrieveMultipleRequest()

                ' Set the properties of the request object.
                retrieve.Query = query

                ' Execute the request.
                Dim retrieved As RetrieveMultipleResponse = _
                    DirectCast(service.Execute(retrieve), _
                               RetrieveMultipleResponse)
                Dim competitors As BusinessEntityCollection = _
                    retrieved.BusinessEntityCollection
                For i As Integer = 0 To competitors.BusinessEntities.Length - 1

                    Dim entity As competitor = _
                        DirectCast(competitors.BusinessEntities(i), competitor)

                    ' The EntityName indicates the EntityType 
                    ' of the object being deleted.
                    service.Delete(EntityName.competitor.ToString(), _
                                   entity.competitorid.Value)
                Next
            Catch ex As System.Web.Services.Protocols.SoapException
                Console.WriteLine(ex.Message + "." + ex.Detail.InnerText)
            End Try
        End Sub
    End Class
End Namespace

© 2007 Microsoft Corporation. All rights reserved.


Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft