資料庫遠端檔案匯入

iDotNetSpace發表於2008-09-12

此解決方案受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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-446861/,如需轉載,請註明出處,否則將追究法律責任。

相關文章