У меня есть файл (который содержит 10 миллионов записей), как показано ниже:
line1
line2
line3
line4
.......
......
10 million lines
Итак, в основном я хочу вставить 10 миллионов записей в базу данных. поэтому я прочитал файл и загрузил его на SQL Server.
Код С#
System.IO.StreamReader file =
new System.IO.StreamReader(@"c:\test.txt");
while((line = file.ReadLine()) != null)
{
// insertion code goes here
//DAL.ExecuteSql("insert into table1 values("+line+")");
}
file.Close();
но вставка займет много времени. Как я могу вставить 10 миллионов записей в кратчайшие сроки с помощью С#?
Обновление 1:
Bulk INSERT:
BULK INSERT DBNAME.dbo.DATAs
FROM 'F:\dt10000000\dt10000000.txt'
WITH
(
ROWTERMINATOR =' \n'
);
Моя таблица выглядит следующим образом:
DATAs
(
DatasField VARCHAR(MAX)
)
но я получаю следующую ошибку:
Msg 4866, уровень 16, состояние 1, строка 1
Сбой массовой загрузки невозможен. Столбец слишком длинный в файле данных для строки 1, столбец 1. Убедитесь, что терминатор поля и ограничитель строки указаны правильно.Msg 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB "BULK" для связанного сервера "(null)" сообщил об ошибке. Поставщик не предоставил никакой информации об ошибке.Msg 7330, уровень 16, состояние 2, строка 1
Не удается получить строку из поставщика OLE DB "BULK" для связанного сервера "(null)".
Ниже приведен код:
BULK INSERT DBNAME.dbo.DATAs
FROM 'F:\dt10000000\dt10000000.txt'
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
);