2628: String or binary data would be truncated in table, column ...; truncated value(表、列 ... 中的字符串或二进制数据将被截断;截断的值)
SQL Server含义
8152 的增强版本(SQL Server 2019 及更高版本)。它会明确报告哪个表、哪个列以及哪个值将被截断。
原因
写入的文本/二进制值长度超过目标列的定义长度。通常是 schema 不匹配或输入数据长度超出预期。
解决方法
查看错误文本中的表名和列名;加宽列或缩短源值。在 SQL Server 2019 中,2628 仅在兼容级别 150+ 时默认引发;在较低级别下用 ALTER DATABASE SCOPED CONFIGURATION SET VERBOSE_TRUNCATION_WARNINGS = ON 或跟踪标志 460 启用。从 SQL Server 2016 SP2 CU6 和 2017 CU12 起,跟踪标志 460 可提供相同的详细消息。在传输层使字段长度与目标一致。
同一数据库的其他条目
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(INSERT/UPDATE/DELETE 语句与 FOREIGN KEY / CHECK 约束冲突)
- 18456Login failed for user(用户登录失败)
- 8152String or binary data would be truncated(字符串或二进制数据将被截断)
- 1222Lock request time out period exceeded(已超过锁请求超时时段)
- 9002The transaction log for database is full due to ...(数据库的事务日志已满,原因为 ...)
- 1105Could not allocate space for object in database because the filegroup is full(由于文件组已满,无法在数据库中为对象分配空间)
- 208Invalid object name(对象名无效)