Sql-Server
有沒有一種有效的方法來查看“字元串或二進制數據將被截斷”的原因?
這是對這個問題的跟進。它也與Microsoft的此功能請求有關。
然而,許多年過去了,自報導以來有幾個主要版本進入市場。
問題: SQL Server 2017 是否提供任何機制來輕鬆找出此錯誤的根本原因?還是像大約 9 年前報告該問題時那樣難以調查?
沒有任何變化。SQL Server 2017 仍然提供相同的模糊錯誤消息,並且不提供任何機制來發現有問題的行/列。當 Connect 停用時,此 Connect 項目有超過 1,600 票(當他們再次移動內容時,Azure 回饋中的新項目未移植):
- 請修復“字元串或二進制數據將被截斷”消息以提供列名
來自微軟的最新評論是這樣的:
最新更新 - 開發它的開發人員了解創建完整修復程序所涉及的挑戰。以不會影響插入或更新性能的方式將有關生成完整錯誤消息所需的列的資訊深入到實際的轉換函式可能會很棘手。我們可能會在短期內實現一些廉價的東西,例如記錄被截斷數據的類型和長度。現在知道這樣的修復何時會發佈到公開可見的版本還為時過早。
從那時起,這已得到修復(如後來的答案和評論所示)。要獲得更詳細的資訊(從布倫特的文章中無恥地竊取):
SQL Server 2016 SP2 CU6+、2017 CU12+、2019:
-- server-level: DBCC TRACEON(460, -1); -- query-level: ... OPTION (QUERYTRACEON 460);
SQL Server 2019
-- 2019 adds a database-level option: ALTER DATABASE SCOPED CONFIGURATION SET VERBOSE_TRUNCATION_WARNINGS = ON;
但是,請注意 460,因為此錯誤仍在審查中。