SQL Server:如何找到哪个列/行给出了错误?

时间:2009-11-05 19:15:49

标签: sql-server

有没有人有关于找到转换或截断错误来源的最佳方法的任何提示,例如:

  • 将数据类型varchar转换为数字时出错。
  • 字符串或二进制数据将被截断。声明已经终止。

当我插入批量数据时,我会得到这些类型的错误,然后它成为一个有根据的猜测游戏,关于哪个列有问题,然后我的数据中的哪一行是罪魁祸首。有什么建议?

2 个答案:

答案 0 :(得分:1)

这是我的解决方案(可能是你已经考虑过的):

隔离示例插入查询并在Management Studio中打开。

注释掉列插入的后半部分。如果仍然出现错误,那么上半场肯定会遇到问题。否则,它在下半场。

继续留出一半的搜索空间(二进制搜索),直至找到至少一个有问题的列。

答案 1 :(得分:0)

要做的另一件事是使用向导将数据拉入单独的工作表(将所有数据长度设置为大到4000的大小),然后在每列上执行以下操作:

从工作表中选择max(len(coloumn1))

您不仅可以看到哪些字段对于您的数据结构来说太大,您还可以使用数据来搜索该字段中太大的所有记录,或者您知道要插入的列的大小需要是为了容纳数据。