У меня есть файл (в котором 10 миллионов записей), как показано ниже:
line1
line2
line3
line4
.......
......
10 million lines
Итак, в основном я хочу вставить в базу данных 10 миллионов записей. поэтому я прочитал файл и загрузил его на SQL Server.
Код C #
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 миллионов записей в кратчайшие сроки с помощью C #?
Обновление 1:
Массовая ВСТАВКА:
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'
);
BULK INSERT- msdn.microsoft.com/en-gb/library/ms188365 .aspx? - person Kami   schedule 10.09.2014varchar(max). Какова ваша структура таблицы, в которую вы хотите вставить строки, и как они выглядят? - person Will Marcouiller   schedule 10.09.2014