我遇到了同样的问题,导致损失数小时,所以我很受鼓舞地分享我的发现和对我有用的解决方案。
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 方法一样,单击edit mappings。对于目标下的 id 列,单击它并选择忽略。
继续完成,就是这样。您的数据将顺利导入。