Seems like more often than not I run into issues trying to export to excel using the SSMS import/export wizard and I've never taken the time to learn and understand the quirks.
This doesn't necessarily answer your question, but might be a viable alternative.
Instead of exporting to excel, consider importing into excel. This YouTube video appears to demonstrate it:
http://youtu.be/VQrKg0GgZR0
Of course, if you need to export a lot of tables or need to do this often this is a rather tedious approach, but it has worked very well for me with a lot fewer headaches when only exporting a few tables.
I can speak for Postgres. PostgreSQL is really fast to copy to if you are a super user. Postgresql has a copy to
command. Merely save the file as a csv (which can also be opened in excel) and use:
COPY table FROM 'fpath' CSV HEADER DELIMITER ';'
You can copy anything with COPY (SELECT STATEMENT) TO 'fpath'
as well.
If you must use excel formats like .xlsx, why not use something like Pentaho and develop an application that can connect to any database. There is a java api for this one. Other ETL tools may do the trick too.
In these instances, upload speed is under 10 minutes. My last upload over a non-commercial network of 900000 rows lasted 20 minutes in Pentaho. A straight copy to in PostgreSQL is actually much faster.
As for speed, querying is your major problem. If you are just copying and querying, Postgres is fine. However, if you are running intensive queries, counts; aggregation, use an ETL tool like Pentaho that you can run from Java and connect with a connection pool like BoneCP for Postgres or another connection pooling software for other databases.
Most databases support connection pooling but have connection limits so look at your configuration settings.
Best Answer
You have the 3 ways posted in the previous answer, or you can do it in plain sql, using OPENROWSET or OPENDATASOURCE.
Some examples:
Both SSIS and SSRS import/export methods can't be done too easily, though they have the advantage of being able to automate their execution, and the copy from SSMS output is only a manual solution. The OPENROWSET/OPENDATASOURCE functions can be called more easily in a procedure or ad-hoc query.