SQL自定义散装插入物



我有一些我想批量插入的列(450列)的大文件(aprox。50.000行),但事实是,我只想220个被插入。有什么办法可以在不使用一些后端处理的情况下使用SQL执行此操作?

文件看起来像这个

123434|s2231|1|||0|inet|20150511123344|...........1233123|12|0

以及我的数据库中的star_date字段是datetime,在我的.csv中,日期像 20150511123344(yyymmmddhhmmss格式)是什么是插入此插入而无需预处理的最佳方法(2015-05-11 12:33:44)?

非常感谢

您可以使用openrowset bulk rowset提供商。

这是链接中的示例:

USE AdventureWorks2012;
DELETE myTestFormatFiles;
GO
INSERT INTO myTestFormatFiles
  SELECT *
  FROM  OPENROWSET(BULK  'C:myTestFormatFiles-c.Dat',
  FORMATFILE='C:myTestFormatFiles.Xml'     
  ) as t1 ;
GO
SELECT * FROM myTestFormatFiles;
GO

在您的情况下,您将用列列表替换"选择 *"。您可能需要或不需要格式文件,我会先尝试一下。

给定表具有400多列,您可以使用BCP.EXE生成格式文件,假设您可以访问服务器和表,则可以从。

生成BCP文件。

示例命令行生成本机数据类型的格式文件:

bcp AdventureWorks2012.HumanResources.Department format nul -T -n -f Department-n.fmt

创建了格式文件后,您可以打开文件以查看列名,然后为Select语句构建列列表。

最新更新