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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM