当你收到这个错误时,首先要问的是,哪一列?不幸的是,SQL Server 在这里没有帮助.所以你开始做试验和错误.那么,现在我有一个声明如下:
INSERT tbl (A, B, C, D, E, F, G)
SELECT A, B * 2, C, D, E, q.F, G
FROM tbl
,othertable q
WHERE etc etc
Run Code Online (Sandbox Code Playgroud)
注意
以前有人见过这个吗?
谢谢.
更新:我还通过过滤掉SELECT来完成"水平"测试,结果大致相同.换句话说,如果我说
我尝试了很多种组合,但它不能局限于一行.
虽然该表没有键,约束,索引或触发器,但它确实有统计信息,并且存在问题.我使用这个脚本杀死了所有表的统计数据
http://sqlqueryarchive.blogspot.com/2007/04/drop-all-statistics-2005.html
而且瞧,将插入回运行良好.为什么统计信息会导致此错误?我不知道,但这是另一个问题......
更新:即使删除了统计信息,此错误也会恢复.因为我确信消息本身不准确(没有截断的证据),所以我选择了这个解决方案:
SET ANSI_WARNINGS OFF
INSERT ...
SET ANSI_WARNINGS ON
Run Code Online (Sandbox Code Playgroud)
好吧,它更像是一个黑客而不是一个解决方案,但它允许我 - 并希望其他人 - 转向其他事情.
| 归档时间: |
|
| 查看次数: |
8834 次 |
| 最近记录: |