>>"the second time I cannot delete all table to import it again from the beginning because of these extra fields"
What are the extra fields?
This is going to be a very processor intensive task :)
Depending on what the data looks like and the type of comparisons you need to perform you can load the .csv in to a "load table" on your SQL Server. Once all of the data is loaded you could do your checks for updates, new records, or deleted records -- then update your live table accordingly.
If you need to do this in C# code that is another matter.
Either way you need to ensure you're handling the transaction log on your SQL Server. With this much constant IO if the database is not in simple mode you will run your harddrive out of space very quickly. There may be bulk utilities for this but I don't have any experience with them.