首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仍然大容量插入类型不匹配错误。

仍然大容量插入类型不匹配错误。
EN

Stack Overflow用户
提问于 2015-12-07 10:29:20
回答 1查看 373关注 0票数 0

喂,

我使用大容量插入从csv文件在数据库中插入记录。在某些文件中,我有一个字段,即type mismatch or invalid character,但除了这一行之外,它还插入了其他行。

示例:文件中插入了7334行(1行类型不匹配) -> 7333行。

这是SQL的正常行为还是问题所在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-07 11:24:25

是的,这是尝试向要插入数据的字段插入不同(在大多数情况下)的数据类型时所期望的行为。对于实例,如果尝试向整数字段插入文本值,则会得到类型不匹配错误。

bigint列不允许插入类似于'00:12:2A:3F‘的值。首先,检查源数据,并验证该列是否实际具有'00:12:2A:3F‘的值。如果不是,这可能是我在下面的说明中解释的原因。如果源数据的值是准确的,则可能必须将列定义更改为适当的数据类型,如varchar()。

除非强制使用CHECK_CONSTRAINTS,否则Sqlserver将跳过错误记录并插入其他符合要求的记录。如果希望插入失败(例如类型错配),请在批量插入中使用CHECK_CONSTRAINTS,如下所示:

代码语言:javascript
复制
BULK INSERT DB.dbo.Test 
FROM '.....' 
WITH ( CHECK_CONSTRAINTS, .......)

注意:需要记住的一件事是,数据本身并没有被字段分隔符污染。例如,如果您的字段由‘、’分隔符分隔,并且您的一个字段在数据中有一个逗号(像'comments‘这样的文本列可能在其中有逗号),则SQL server认为从那里开始一个新的列并中断该字段,导致另一个列被错误地对齐。这可能是你的类型错配的一个原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34131387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档