sql-server - 为什么 "String or Binary data would be truncated"不是一个更具描述性的错误?

标签 sql-server database insert

首先:我了解此错误的含义 - 我没有尝试解析它的实例。

这个错误是出了名的难以解决,因为如果你将一百万行插入到一个 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/

相关文章:

SQL创建空数据库

sql - LINQ 到 SQL : table insert on multiple tables

python - pyodbc 将 SQL Server DATE 字段作为字符串返回

mysql - 插入新值时使用同一 ID 中的数字插入另一个字段

c# - 如何使用 C# 将数据插入 SQL 表并实现上传功能?

zend-framework - Zend Framework 将 NULL 字符串转换为 MySql 的实际 NULL 值

php - 语法错误:MySQL Insert Select

sql-server - Visual Studio数据库项目中的版本控制更新

SQL Server如何按顺序选择第一行

mysql 查询排序数据库