+ Start a Discussion

Mass update of custom fields using anonymous Apex code: hitting 100 SQL query limits


I wrote Apex anonymous block of code to update custom fields on a table. But, I could not by pass the SOQL query limit . Can any one suggest a better solution here.

My code:

List<Event> eventList = [select id, ownerid, accountid,whoid from event];
List<Event> updateEventList = new List<Event>();

for(Event e : eventList){

Event eventInst=new Event();

string 1=[SELECT query where id=e.id];
string 2=[SELECT query where id=e.id];
string 3=[SELECT query where id=e.accountid];
string 4=[SELECT query where id=e.ownerid];


}//for loop closed

update updateEventList;

Now this is giving me Too many SOQL queries: 101 error as the SQL statements are runnig for every FOR loop.

Is there anyway i can by pass the limit or a better solution .
I just want update the custom fields on Event table ...there are close to 4000 records.

Phillip SouthernPhillip Southern
Hi, you dont want to perform SOQL statements inside a For loop......you want to perform any queries before the loop starts and store those values in a Map you can call later to obtain values and place inside a record.

reference: http://wiki.developerforce.com/page/Best_Practice:_Avoid_SOQL_Queries_Inside_FOR_Loops