【发布时间】:2011-05-24 10:11:53
【问题描述】:
我正在寻找一个存储过程代码,它可以打开一个文本文件,读取几千行,然后将代码添加到数据库中的一个表中。有没有一种简单的方法可以在 T-SQL 中实现这一点?
【问题讨论】:
标签: sql sql-server stored-procedures stored-functions
我正在寻找一个存储过程代码,它可以打开一个文本文件,读取几千行,然后将代码添加到数据库中的一个表中。有没有一种简单的方法可以在 T-SQL 中实现这一点?
【问题讨论】:
标签: sql sql-server stored-procedures stored-functions
我建议使用 SSIS。它旨在执行此类操作(特别是如果您需要定期执行此操作)。
Here is a good link 读取文本文件并插入数据库。
【讨论】:
如果文件已准备好“按原样”加载(无需数据转换或复杂映射),您可以使用批量插入命令:
CREATE PROC dbo.uspImportTextFile
AS
BULK INSERT Tablename FROM 'C:\ImportFile.txt'
WITH ( FIELDTERMINATOR ='|', FIRSTROW = 2 )
【讨论】:
将许多记录插入表中最有效的方法是使用BULK INSERT(我相信这是BCP Utility 使用的,所以应该一样快)。
BULK INSERT 针对插入大量数据进行了优化,适用于简单的INSERT 语句根本无法执行的情况。
如果BULK INSERT 不是您所追求的,那么您可能需要查看以下文章以获得更直接的技术:
文章中链接的是一个存储过程uftReadFileAsTable,它看起来应该足够通用,可以实现您所追求的目标。
如果不是,那么您至少可以使用存储过程作为如何在 SQL 中读取文件的示例(它使用 OLE / Scripting.FileSystemObject)
【讨论】:
为什么不使用 try 用户函数? 这样您就可以使用 .NET 访问和处理您的文件。
看看这个post
【讨论】: