sql server的缺陷 将截断字符串或二进制数据 哪个字段

将截断字符串或二进制数据 哪个字段

消息 8152,级别 16,状态 14,第 2 行
将截断字符串或二进制数据。

sql server2000

sql server2014 也不能直接提示出哪个字段的问题

 将截断字符串或二进制数据

create table #ls(a char(10),b char(10))
insert into #ls  values('aaaaaaaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbb')

 insert into tt(field1)
select  field2 from table 2

这样也不知道哪个字段值超大了

问题

 sql server 2016 测试了,也不行,阿里云上有sql 2016

哪个版本能提供

到底是哪个字段超长了

sql server2019有此功能

https://support.microsoft.com/en-us/help/4468101/optional-replacement-for-string-or-binary-data-would-be-truncated

https://docs.microsoft.com/zh-cn/sql/sql-server/what-s-new-in-sql-server-ver15?view=sqlallproducts-allversions&WT.mc_id=Revolutions-blog-davidsmi

截断错误消息已改进,包括表名和列名以及截断值 (CTP 2.1)

开发或维护数据移动工作负载的许多 SQL Server 开发人员和管理员非常熟悉错误消息 ID 8152 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'.

新错误消息 2628 为数据截断问题提供更多上下文,从而简化了故障排查过程。 对于 CTP 2.1 和 CTP 2.2,这是一个“选择加入”错误消息,需要启用跟踪标志 460。

看看oracle的提示

[FireDAC][Phys][Ora] ORA-12899: 列 "orcl"."CONTACT"."DATAGENERATE_DATE" 的值太大 (实际值: 17, 最大值: 15)

原文地址:https://www.cnblogs.com/cb168/p/6805515.html