繁体   English   中英

SQL Server批量插入错误

[英]SQL Server BULK INSERT error

这是我的CSV格式的源数据:

4,23,2AY5623,7235623
4,23,2GP1207,1451207
4,23,2GQ6689,4186689

表:

CREATE TABLE [dbo].[Table1](
    [idCodeLevel] [int] NOT NULL,
    [idFirm] [int] NOT NULL,
    [valCodeFrom] [varchar](15) NOT NULL,
    [valCodeTo] [varchar](15) NOT NULL
) ON [PRIMARY]

这是我用来批量导入的代码:

USE Test
GO

TRUNCATE TABLE Table1
GO

BULK INSERT Table1
  FROM 'C:\Temp\test.csv'
  WITH (
    FIELDTERMINATOR = ',',
    MAXERRORS=0,
    ROWTERMINATOR = '\n'
  )
GO

我得到的错误是:

消息4864,第16级,州1,第2行
第1行第1列(idCodeLevel)的批量加载数据转换错误(类型不匹配或指定代码页的字符无效)。

能否请您告诉我为什么失败了?

我搜索了一下,发现可能必须使用.fmt格式。 但是如何将csv文件转换为fmt。 我已经看到了从sql表创建fmt文件的代码。

非常感谢你的帮助!

csv在字段名称顶部是否有一行? 如果是这样,则需要在您的批量声明中添加“ FIRSTROW = 2”。 如果不是,请尝试创建一个所有VARCHAR字段的新表,然后检查数据:您的数据中可能有一些您不期望的奇怪东西,例如非打印字符。 导入为文本,然后尝试类似“从NEWTABLE中选择ISNUMERIC([FIELD1])”。

使用sql导入向导从外部文件导入数据。

右键单击数据库--->任务--->导入---->将平面文件指定为源,然后选择目标服务器。

有关更多信息,请访问将CSV数据导入SQL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM