数据库远程文件导入

此解决方案受SQL Server 2000和SQL Server 2005支持。数据文件导入有两种情况,一种是文件内容以二进制文件存入数据库;另一种是将文件中的数据导入到对应的数据表中。因为现在很多Web系统分为Web应用程序服务器、业务逻辑使用的AP和数据库服务器,这样就存在如果使用文件流就会让大量的二进制数据传来传去浪费带宽和内容,而解决这种问题的方案就是把文件上传到Web应用程序服务器,让SQL Server远程访问AP拽文件到数据库中进行数据导入操作。当然这需要让SQL Server能通过UNC路径访问数据文件所在目录。

a) 文件内容导入对应数据表用SQL文:

BULK INSERT TblBulkInsert
FROM '\\127.0.0.1\Temp\Data.csv'
WITH
    (
        FIELDTERMINATOR = ',',
        ROWTERMINATOR = '\n'
    )

说明:TblBulkInsert表有与CSV对应的字段,CSV文件中的数据采用","分隔(参数FIELDTERMINATOR );CSV文件数据行采用回车来分隔(参数ROWTERMINATOR )。

b) 文件内容导入二进制字段用SQL文:

INSERT INTO  TblFileImage(Id,FileImage)
SELECT 1, *
FROM OPENROWSET(BULK '\\127.0.0.1\Temp\Data.csv', SINGLE_BLOB) AS Table1

说明:TblFileImage包含两个字段,其中FileImage字段的类型为Image型。

参考资料:
How do I load text or csv file data into SQL Server?
http://sqlserver2000.databases.aspfaq.com/how-do-i-load-text-or-csv-file-data-into-sql-server.html

SQL Server Bulk Insert Synatx
http://msdn2.microsoft.com/en-us/library/ms188365.aspx

请使用浏览器的分享功能分享到微信等