Since your engine is OBDII controlled, disconnecting the battery will do more harm than good. Your engine computer has the ability to see freeze frame data before and after a malfunction occurs. The freeze frame data also allows a technician the ability to try and duplicate the conditions that turned on the service engine soon(SES) light. Typical freeze frame data includes the following:calculated engine load, rpm, short term and long term fuel trim, fuel pressure, vehicle speed, coolant temp., intake manifold pressure, closed/open loop status, MAP, the DTC that caused the freeze frame data to be stored and if the code stored is for misfire (and if it is , the specific cylinder(s) causing the misfire).
By disconnecting the battery, you lose all that data plus the fault code information. Additionally, new codes will not set until the specific readiness monitor associated with that code has run. It will be very hard to diagnose if you clear the above data.
By the way, what was the driving situation that turned the SES on? you weren't pumping gas with the engine running to keep warm, b/c that will set an evap code?