存储过程以打开和读取文本文件

时间:2010-12-13 00:38:35

标签: sql sql-server stored-procedures stored-functions

我正在寻找一个存储过程代码,它将打开一个文本文件,读取数千行,并将代码添加到数据库中的表中。有没有一种简单的方法可以在T-SQL中实现它?

4 个答案:

答案 0 :(得分:4)

我建议使用SSIS。它旨在做这种事情(特别是如果你需要定期做)。

Here is a good link继续读取文本文件并插入数据库。

答案 1 :(得分:3)

如果文件已准备好“按原样”加载(不需要数据转换或复杂映射),则可以使用批量插入命令:

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 :(得分:2)

将多个记录插入表格的最有效方法是使用BULK INSERT(我相信这是BCP Utility使用的,因此它应该同样快)。

BULK INSERT针对插入大量数据进行了优化,旨在用于简单INSERT语句的执行时不会使用。

如果BULK INSERT不是您的目标,那么您可能需要查看以下文章以获得更直接的技巧:

文章中链接的是一个存储过程uftReadFileAsTable,它似乎应该足够多才能实现您的目标。

如果不是那么你至少可以使用存储过程作为如何在SQL中读取文件的示例(它使用OLE / Scripting.FileSystemObject

答案 3 :(得分:0)

为什么不使用try用户功能? 这样您就可以使用.NET来访问和处理您的文件。

查看此post