Sql can help you out alot with this:
An Excerpt from Jeff Star.
Disabling and enabling comments
In the WordPress database, the “wp_posts” table includes a column
called “comment_status”, which may contain one of the following values
for each row (i.e., post):
open (comments open to everyone) closed (comments closed to everyone)
registered_only (comments open for registered/logged-in users) Given
this information, we may execute the following SQL queries (via
phpMyAdmin or any other method of querying the database) to manipulate
our discussion-management settings for comments (note: remember to
backup your database):
Globally enable comments for all users
UPDATE wp_posts SET comment_status = 'open';
Globally disable comments for all users
UPDATE wp_posts SET comment_status = 'closed';
Globally enable comments for registered users only
UPDATE wp_posts SET comment_status = 'registered_only';
Globally enable/disable comments before a certain date
For this query, specify the comment_status as either open, closed, or
registered_only. Also, specify the date by editing the 2008-01-01 to
suit your needs.
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2008-01-01' AND post_status = 'publish';
I run this query a few times each year (or as often as I can remember
it) to disable comments on old posts. Ultimately, I will combine this
query with a similar one (provided below) for pingbacks and trackbacks
to manage discussion options with a single step.