为什么不“截断字符串或​​二进制数据"?更具描述性的错误?

Why isn#39;t quot;String or Binary data would be truncatedquot; a more descriptive error?(为什么不“截断字符串或​​二进制数据?更具描述性的错误?)
本文介绍了为什么不“截断字符串或​​二进制数据"?更具描述性的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

开始:我了解此错误的含义 - 我没有尝试解决它的实例.

众所周知,此错误很难解决,因为如果您将一百万行插入到 100 列宽的表中,则几乎无法确定导致错误的行的哪一列 - 您必须修改您的流程以一次插入一行,然后查看哪一行失败.委婉地说,那是一种痛苦.

This error is notoriously difficult to troubleshoot, because if you get it inserting a million rows into a table 100 columns wide, there's virtually no way to determine what column of what row is causing the error - you have to modify your process to insert one row at a time, and then see which one fails. That's a pain, to put it mildly.

错误看起来不像这样有什么原因吗?

Is there any reason that the error doesn't look more like this?

String or Binary data would be truncated
Error inserting value "Some 18 char value" into SomeTable.SomeColumn VARCHAR(10)

如果不是表结构本身,这将使查找和更正值变得更加容易.如果查看表数据是一个安全问题,那么可能是通用的,比如给出尝试值的长度和失败列的名称?

That would make it a lot easier to find and correct the value, if not the table structure itself. If seeing the table data is a security concern, then maybe something generic, like giving the length of the attempted value and the name of the failing column?

推荐答案

事实证明,在 MS Connect 上有一个开放的功能请求" - 如果您希望更改功能,我鼓励您投票支持.

It turns out there's an open "feature request" for this on MS Connect - I'd encourage you to vote for it if you'd like the functionality changed.

https://connect.microsoft.com/SQLServer/feedback/details/339410/

添加:

实际上,自育空地区于 2005 年开发以来,似乎还有另一个要求同样功能(尽管名称不佳)的请求非常出色,我也鼓励人们投票支持:

It actually looks like there's another request for this same feature (though poorly named) that's been outstanding since Yukon's development in 2005 that I'd encourage people to vote for as well:

https://connect.microsoft.com/SQLServer/feedback/details/125347/

2016 年更新

微软似乎试图删除这个漏洞真实年龄的证据.很公平.找到 旧网站存档在这里.

It seems Microsoft has tried to delete evidence of this bug's true age. Fair enough. Find the old site archived here.

这篇关于为什么不“截断字符串或​​二进制数据"?更具描述性的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
SSIS: Model design issue causing duplications - can two fact tables be connected?(SSIS:模型设计问题导致重复-两个事实表可以连接吗?)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)
SQL Server Graph Database - shortest path using multiple edge types(SQL Server图形数据库-使用多种边类型的最短路径)
Invalid column name when using EF Core filtered includes(使用EF核心过滤包括时无效的列名)