sql-server – “将数据类型varchar转换为数字时出错.” – 什么列?

前端之家收集整理的这篇文章主要介绍了sql-server – “将数据类型varchar转换为数字时出错.” – 什么列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含200列的巨大INSERT语句,并且我发现了将数据类型varchar转换为数字的可怕错误.有什么地方我可以看到包含“varchar”值的实际列吗?我知道我可以一次删除其中一个列,直到错误消失,但这非常繁琐.

解决方法

您没有指定sql Server版本或行数.

对于sql2005,将OUTPUT子句添加到INSERT可能有助于识别恶意行,因为它将输出插入的行,直到遇到错误,因此下一行是有问题的行

  1. DECLARE @Source TABLE
  2. (
  3. Col1 VARCHAR(10),Col2 VARCHAR(10)
  4. )
  5.  
  6. INSERT INTO @Source
  7. SELECT '1','1' UNION ALL
  8. SELECT '2','2' UNION ALL
  9. SELECT '3','3' UNION ALL
  10. SELECT '4A','4' UNION ALL
  11. SELECT '5','5'
  12.  
  13.  
  14. DECLARE @Destination TABLE
  15. (
  16. Col1 INT,Col2 VARCHAR(10)
  17. )
  18.  
  19. INSERT INTO @Destination
  20. OUTPUT inserted.*
  21. SELECT *
  22. FROM @Source

返回

  1. (5 row(s) affected)
  2. Col1 Col2
  3. ----------- ----------
  4. 1 1
  5. 2 2
  6. 3 3
  7. Msg 245,Level 16,State 1,Line 23
  8. Conversion Failed when converting the varchar value '4A' to data type int.

猜你在找的MsSQL相关文章