Хранимая процедура для открытия и чтения текстового файла

Я ищу код хранимой процедуры, который откроет текстовый файл, прочитает несколько тысяч строк и добавит код в таблицу в базе данных. Есть ли простой способ реализовать это в T-SQL?

4 ответов


Если файл готов к загрузке "как есть" (преобразования данных или сложные сопоставления не требуются), вы можете использовать команду Bulk Insert:

CREATE PROC dbo.uspImportTextFile

AS

BULK INSERT Tablename FROM 'C:\ImportFile.txt' WITH ( FIELDTERMINATOR ='|', FIRSTROW = 2 )

http://msdn.microsoft.com/en-us/library/ms188365.aspx


Я бы рекомендовал посмотреть на использование SSIS. Он предназначен для такого рода вещей (особенно если вам нужно делать это на регулярной основе).

вот хорошая ссылка это переходит к чтению текстового файла и вставке в БД.


самый эффективный способ вставки многих записей в таблицу-использовать МАССОВАЯ ВСТАВКА (Я считаю, что это утилита BCP использует, и поэтому это должно быть так же быстро).

BULK INSERT оптимизирован для вставки большого количества данных и предназначен для использования при выполнении простого INSERT заявление просто не будет делать.

если BULK INSERT Это не то, что вам нужно, тогда вы можете взглянуть на следующее статья для более простой техники:

связанная в статье хранимая процедура uftReadFileAsTable который кажется, что он должен быть достаточно универсальным, чтобы достичь того, что вам нужно.

если это не так, вы можете по крайней мере использовать хранимую процедуру в качестве примера того, как читать файлы в SQL (он использует OLE/сценариев.Filesystemobject, с)


Почему не использовать функции пользователя try? Таким образом, вы можете использовать .NET для доступа и обработки файла.

зацените в должности