У меня есть несколько CSV, которые нужно импортировать в мои таблицы C # в SQL Server. Я сделал это раньше, но нашел это довольно скучным и утомительным.
Кто-нибудь знает какие-либо инструменты или методы для ускорения этого процесса?
Спасибо всем!
Если вам нужно сделать это через C #, то посмотрите FileHelpers или http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx .
Если вы хотите сделать это через SQL (BULK INSERT), то посмотрите прохождение (включая источник) здесь http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-in-sql-server-using-bulk-insert-load-comma-delimited-file-in-sql-server/ (ссылка MSDN http://msdn.microsoft.com/en-us/library/ms188365.aspx ).
Существует более простой вариант, однако, используя мастер импорта SQL Server в интерактивном режиме для небольшое количество файлов.
SQL Server Management Studio, on the database under Right Click -> Tasks -> Import Data... can consume CSV files.
Если вам нужно сделать это через C #, есть множество читателей и писателей CSV:
http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx
Отсюда всего лишь короткий переход к DataTable
и SqlBulkCopy
.
Вы хотите выполнить инструкцию BULK INSERT
.
Быстрый Google предлагает эти сайты:
FileHelpers библиотека фантастична для того, чтобы делать подобные вещи через код.
Предполагая, что csv структурирован таким образом:
Я бы сделал так:
var lines = File.ReadAllLines("");
foreach (string line in lines)
{
var values = line.Split(new[] { line[0] }, StringSplitOptions.None);
}
Службы интеграции SQL Server (SSIS) являются инструментами Microsoft ETL и легко обрабатывают файлы CSV.