2009-11-04 125 views

回答

1
+0

ALTER過程test_123 作爲 BULK INSERT ExcelToDB FROM 'd:\ EtilizedataSaba211009.csv' WITH(CODEPAGE = 'RAW', FIELDTERMINATOR = '', ROWTERMINATOR = '\ n', ROWS_PER_BATCH = 10000,TABLOCK) GO 此程序不能正常工作 – chaitali 2009-11-04 09:04:33

+1

不工作怎麼辦? – 2009-11-04 09:19:05

-1

的Sql批量插入

0

BESI des SQL BULK插入,您也可以檢出SQL Server集成服務,如果您只需要這樣做一次。

在SQL Server Management Studio中,轉到對象資源管理器,找到您的數據庫,右鍵單擊它,然後選擇「任務>導入數據」。這將啓動SSIS嚮導,該向導允許您選擇一個源(您的CSV文件),一個目標(您的SQL Server數據庫+表),並且它支持僅挑選某些字段,重命名它們等等。

對於「做一次」操作,這是一個相當不錯且有用的嚮導。

+0

但是,如果列中的數據可能大於50個字符,則需要調整列大小。我從來沒有以這種方式導入文件,至少在一列中我不需要這樣做。 – HLGEM 2009-11-04 14:08:13

+0

嗯....我只是插入了大量的255張寬度爲 - 不需要手動干預的列表(SSIS 2008) – 2009-11-04 14:18:18

0

如果您使用.NET編程,您可以使用我編寫的CsvHelperBulkInserter類。

使用CsvHelper作爲CLR對象讀取csv行,BulkInserter會將它們泵入數據庫。這是BulkInserter usage

0

您可以在SQL中創建一個過程,每次想要批量插入時都可以調用該過程,也可以對其進行硬編碼。

硬編碼的BULK INSERT是:

BULK 
INSERT *TableName* 
FROM *'FilePath'* 
WITH 
( 
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n', 
CODEPAGE = 'ACP' 
) 
GO 

我已經使用了很多次。我認爲如果你打算使用它作爲一個過程更好,但這意味着你需要創建過程並在每個查詢中調用它。