2009-11-04 217 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 

我已经使用了很多次。我认为如果你打算使用它作为一个过程更好,但这意味着你需要创建过程并在每个查询中调用它。