此文章发布于66
个月前,部分信息可能已经过时
,请自行斟酌确认。
将截断字符串或二进制数据
这个问题已经困扰我好多年了,一直没有很好的方法能快速定位到底是哪个字段,只能凭经验分析表结构和插入的数据来排查。
终于,SQL Server 2019
可以返回详细的错误信息了。
点此链接:
VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}
适用对象:SQL Server(从 SQL Server 2019(预览版) 开始)和 Azure SQL Database
允许启用或禁用新的 String or binary data would be truncated 错误消息。
SQL Server 2019(预览版) 针对此情况引入了更具体的新错误消息 (2628):
String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.
在数据库兼容性级别 150 下设置为 ON 时,截断错误会引发新的错误消息 2628 以提供更多上下文并简化故障排除过程。
在数据库兼容性级别 150 下设置为 OFF 时,截断错误会引发先前的错误消息 8152。
对于数据库兼容性级别 140 或更低级别,错误消息 2628 仍然是要求启用跟踪标志 460 的“选择加入”错误消息,并且此数据库范围的配置无效。
错误信息如图: