I've never tried this - so I don't know if I'd run into memory issues.
But can a SqlDataReader read a trillion records? It's all streamed correct? I'm a little green to what the SQL/TDS protocol is doing under the covers.
UPDATE Translate Trillion to mean very large number. I probably should have said something like 1 billion or 100 million.