首先:我了解此错误的含义 - 我没有尝试解析它的实例。
这个错误是出了名的难以解决,因为如果你将一百万行插入到一个 100 列宽的表中,几乎没有办法确定哪一行的哪一列导致了错误 - 你必须修改你的过程以一次插入一行,然后查看哪一行失败。委婉地说,这很痛苦。
错误看起来不像这样有什么原因吗?
String or Binary data would be truncated
Error inserting value "Some 18 char value" into SomeTable.SomeColumn VARCHAR(10)
如果不是表结构本身,那将使查找和更正值变得容易得多。如果查看表数据是一个安全问题,那么可能是一些通用的东西,比如给出尝试值的长度和失败列的名称?
最佳答案
事实证明,在 MS Connect 上有一个公开的“功能请求”——如果您希望更改功能,我鼓励您投票支持它。
https://connect.microsoft.com/SQLServer/feedback/details/339410/
已添加:
实际上,自 2005 年 Yukon 开发以来,似乎还有另一个对相同功能(虽然命名不当)的要求,我也鼓励人们投票支持该功能:
https://connect.microsoft.com/SQLServer/feedback/details/125347/
2016 年更新
Microsoft 似乎已尝试删除此漏洞真实存在时间的证据。很公平。找到 old site archived here.
关于sql-server - 为什么 "String or Binary data would be truncated"不是一个更具描述性的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547592/