Хранимая процедура для открытия и чтения текстового файла - PullRequest
6 голосов
/ 13 декабря 2010

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

Ответы [ 4 ]

4 голосов
/ 13 декабря 2010

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

Вот хорошая ссылка , которая идет через чтение текстового файла и вставку в БД.

3 голосов
/ 13 декабря 2010

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

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

2 голосов
/ 13 декабря 2010

Самый эффективный способ вставки множества записей в таблицу - это использовать BULK INSERT (я считаю, что это то, что использует BCP Utility , и поэтому должно быть так же, какбыстро).

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

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

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

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

0 голосов
/ 13 декабря 2010

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

Проверьте это сообщение

...