SQL Server的批量插入
的Sql批量插入
BESI des SQL BULK插入,您也可以检出SQL Server集成服务,如果您只需要这样做一次。
在SQL Server Management Studio中,转到对象资源管理器,找到您的数据库,右键单击它,然后选择“任务>导入数据”。这将启动SSIS向导,该向导允许您选择一个源(您的CSV文件),一个目标(您的SQL Server数据库+表),并且它支持仅挑选某些字段,重命名它们等等。
对于“做一次”操作,这是一个相当不错且有用的向导。
但是,如果列中的数据可能大于50个字符,则需要调整列大小。我从来没有以这种方式导入文件,至少在一列中我不需要这样做。 – HLGEM 2009-11-04 14:08:13
嗯....我只是插入了大量的255张宽度为 - 不需要手动干预的列表(SSIS 2008) – 2009-11-04 14:18:18
如果您使用.NET编程,您可以使用我编写的CsvHelper和BulkInserter类。
使用CsvHelper作为CLR对象读取csv行,BulkInserter会将它们泵入数据库。这是BulkInserter usage。
您可以在SQL中创建一个过程,每次想要批量插入时都可以调用该过程,也可以对其进行硬编码。
硬编码的BULK INSERT是:
BULK
INSERT *TableName*
FROM *'FilePath'*
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
CODEPAGE = 'ACP'
)
GO
我已经使用了很多次。我认为如果你打算使用它作为一个过程更好,但这意味着你需要创建过程并在每个查询中调用它。
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
不工作怎么办? – 2009-11-04 09:19:05