获取该列导致com.microsoft.sqlserver.jdbc.SQLServerException的任何方法:字符串或二进制数据将被截断

Kan*_*ane 6 java sql hibernate sql-server-2005 jdbc

我们有一个webapp,它使用hibernate将数据持久化到sql server 2005实例.

偶尔我们得到一个 com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

虽然我们可以获取插入查询,然后手动比较数据库中的列定义以查看哪个列太小,但这很慢并且容易出错.有没有办法自动从这个异常中获取有问题的表/列?

我已经浏览了Google和SO以寻求解决方案,所以我会理解答案是"不,你不能得到那些信息",但我认为这并没有伤害.

PDS*_*PDS -2

当您尝试将比您所能容纳的数据更大的数据放入表列时,可能会发生此错误,例如:

您的列设置是 varchar(10) 并且您尝试输入“某些数据长度超过 10”

然后你会得到如下错误:com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

检查输入数据和您的设置。