有没有一种有效的方法来查看“字符串或二进制数据将被截断”的原因?


13

这是此问题的后续措施。这也与Microsoft的此功能请求有关。

但是,自从报道以来,已经过去了许多年,并且有几个主要版本进入了市场。

问题: SQL Server 2017是否提供任何机制来简化找出此错误的根本原因?还是很难像9年前报告该问题那样进行调查?


我每周至少花费4个小时来调试这个错误,而SQL甚至不在我的职位描述中。
Tonny

Answers:


20

没有变化。SQL Server 2017仍然提供相同的模糊错误消息,并且不提供任何机制来发现有问题的行/列。

停用Connect时,该Connect项具有1,600票以上:

来自微软的最新评论是:

最新更新-正在开发它的开发人员了解创建完整修复程序所涉及的挑战。以不影响插入或更新性能的方式,将有关生成完整错误消息所需的列的信息下探到实际转换函数可能很困难。我们可能会在短期内实现一些便宜的东西,例如记录被截断的数据的类型和长度。尚不知道何时将这种修补程序发布到公开发布的版本还为时过早。

我能建议的最好的办法是对该项目进行投票(并对其进行评论,描述它会为您增加的商业价值)。


+1。要添加一种发现效率低下的方法(如果您没有应用程序日志),可以使用探查器和过滤器(按主机/用户/应用程序/查询/等方式)。这也可能有用:nimblegecko.com/…–
让·吉恩(

3

MDSN博客文章所述,我们的祈祷已得到答复:

SQL Server 2019引入了一条带有其他上下文信息的新消息。

该错误现在应该更加有意义:

消息2628,级别16,状态1,第14行在表'DbName.SchemaName.TableName'的列'Col'中,字符串或二进制数据将被截断。截断的值:“ ...”。

此外,好消息是,此更改将在2017年和2016年反向移植:

此新消息也将反向移植到SQL Server 2017 CU12(以及即将发布的SQL Server 2016 SP2 CU),但默认情况下不会。您需要启用跟踪标志460,以在会话或服务器级别用2628替换消息ID 8152。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.