SQL Server:将截断字符串或二进制数据,哪个字段?

此文章发布于 66 个月前,部分信息可能已经过时,请自行斟酌确认。

将截断字符串或二进制数据这个问题已经困扰我好多年了,一直没有很好的方法能快速定位到底是哪个字段,只能凭经验分析表结构和插入的数据来排查。

终于,SQL Server 2019 可以返回详细的错误信息了。

点此链接:

https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-scoped-configuration-transact-sql?view=sqlallproducts-allversions#verbose-truncation

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 的“选择加入”错误消息,并且此数据库范围的配置无效。

错误信息如图:

20190620090900.png

最后修改:2019 年 06 月 20 日 09 : 09 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论