将CSV文件导入SQLServer表的方法

有时我们可以从CSV中导入数据到数据库表中,例如在进行报表分析时。

对于这个问题,我认为很难阻止程序员,但是如果SQL Server能完成这项任务,那就更好了!

是的,SQL Server确实有这个功能。



首先,让我们看看CSV文件一看,这是存储在我的D:盘,称为csv.txt,和内容:







现在是SQL Server的关键部分;

我们正在使用SQL Server的批量插入命令。有关命令的详细说明,请单击此处。

我们首先设置一个数据表来保存SQL Server中的信息,




创建表csvtable(
Name NVARCHAR(Max),
电子邮件nvarchar(max),
地区nvarchar(max)



然后执行以下语句:


大容量插入csvtable
来自:
(与
fieldterminator =,
rowterminator ='

SELECT * FROM csvtable


根据F5,结果如下:





是什么样的它比程序简单吗!

但是有几个问题需要考虑。

1,CSV文件中的一些列值是双引号,而一些列值没有双引号。







如果您再次运行上述语句,结果将与最后一个语句不同。





其中有些包含双引号,这不应该是我们想要的结果。为了解决这个问题,我们只能使用临时表,首先将CSV导入临时表,然后在从临时表导入到最终表的过程中删除双引号。



2,CSV文件的列值都由双引号组成:







这个问题比最后一个问题复杂一点。除了将CSV文件导入临时表之外,还必须修改代码以将CSV文件导入临时表。







注意圈中的部分。



3,CSV文件的列大于数据表的列:





而我们的数据表只有三列,如果在它上执行导入代码会发生什么



结果是:







它收回了全部放在区柱,为了解决这个问题,其实很简单,就是我们把我们想要建立一个列的数据表中的列的值,而不需要设置列值,同时在数据表中,但只是暂时的柱,在导入表,表的最后,忽视对线路临时柱。