Я все еще ищу способ сделать это в MS SQL, но то, что я сделал в MySQL, это чтобы сохранить CSV как BLOB во временной таблице, запустить SELECT ... INTO DUMPFILE в каталоге, локальном для Сервер БД, затем выполните обычную инструкцию LOAD DATA для этого локального файла (РЕДАКТИРОВАТЬ: я чувствую, что должен указать, это было до того, как LOAD DATA LOCAL была доступна).
Я думаю, spWriteStringToFile сделает это.
РЕДАКТИРОВАТЬ: я на что-то.
comm.CommandText = @"EXEC spWriteStringToFile @data, 'c:\datadumps', 'data.csv';
BULK INSERT my_table FROM 'c:\datadumps\data.csv';";
comm.Parameters.AddWithValue("data", File.ReadAllText(path));
comm.ExecuteNonQuery();