我遇到了同样的问题,这造成了数小时的损失,因此我很高兴分享我的发现和对我有用的解决方案。
1.使用Excel文件
这是我采用的方法。我没有使用csv文件,而是使用了具有如下内容的Excel文件(.xlsx)。
id username email token website
johndoe johndoe@divostar.com divostar.com
bobstone bobstone@divosays.com divosays.com
请注意,id列没有值。
接下来,使用Microsoft SQL Server Management Studio连接到数据库,然后右键单击数据库并选择导入数据(任务下的子菜单)。选择Microsoft Excel作为源。当到达称为“选择源表和视图”的阶段时,单击编辑映射。对于id
“目标”下的列,单击它,然后选择“忽略”。不要检查Enable Identity insert
除非要从另一个数据库导入数据并且想要维护源数据库的自动增量ID,否则ID。继续完成,仅此而已。您的数据将顺利导入。
2.使用CSV文件
在您的csv文件中,确保您的数据如下所示。
id,username,email,token,website
,johndoe,johndoe@divostar.com,,divostar.com
,bobstone,bobstone@divosays.com,,divosays.com
运行以下查询:
BULK INSERT Metrics FROM 'D:\Data Management\Data\CSV2\Production Data 2004 - 2016.csv '
WITH (FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
这种方法的问题是CSV应该位于数据库服务器或数据库可以访问的某些共享文件夹中,否则您可能会收到诸如“无法打开文件。操作系统返回错误代码21(设备尚未准备就绪)的错误信息。 )”。
如果要连接到远程数据库,则可以将CSV上载到该服务器上的目录,并在批量插入中引用该路径。
3.使用CSV文件和Microsoft SQL Server Management Studio导入选项
像第一种方法一样启动您的导入数据。对于源,请选择“平面文件源”,然后浏览以查找CSV文件。确保右侧菜单(常规,列,高级,预览)正常。确保在“列”菜单(列定界符)下设置正确的定界符。就像上面的excel方法一样,点击编辑映射。对于“目标”下的“ id”列,单击它并选择“忽略”。
继续完成,仅此而已。您的数据将顺利导入。