有时我们可以从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文件的列大于数据表的列:
而我们的数据表只有三列,如果在它上执行导入代码会发生什么
结果是:
它收回了全部放在区柱,为了解决这个问题,其实很简单,就是我们把我们想要建立一个列的数据表中的列的值,而不需要设置列值,同时在数据表中,但只是暂时的柱,在导入表,表的最后,忽视对线路临时柱。