这一年是2010年.
SQL Server许可证并不便宜.
但是,此错误仍未指示行或列或产生问题的值.天哪,它甚至不能告诉你它是"字符串"还是"二进制"数据.
我错过了什么吗?
Wil*_*l A 18
解决这些问题的快速方法是将行选择到新的物理表中,如下所示:
SELECT * INTO dbo.MyNewTable FROM <the rest of the offending query goes here>
Run Code Online (Sandbox Code Playgroud)
...然后将此表的模式与INSERT先前进入的表的模式进行比较 - 并查找更大的列.
您可以使用 if 条件检查每个插入值的长度,如果该值需要比当前列宽度更大的宽度,则截断该值并引发自定义错误。
如果您只需要确定导致问题的字段,那么这应该可行。我不知道是否有更好的方法来做到这一点。