打开 Trace Flag 460 不会给出更好的错误消息

问题描述

我有一个错误结尾的大型插入查询

Msg 8152,Level 16,State 4,Line 1
字符串或二进制数据将被截断

经过一些研究,我尝试使用 TRACE FLAG 460,使用以下命令:

INSERT... 
VALUES...
OPTION (QUERYTRACEON 460);

这给出了与之前相同的错误,所以我尝试使用以下命令在服务器级别打开标志:

DBCC TRACEON(460,-1);

同样,输出没有变化。但是当我检查 flagstatus 时,它提供了所有正确的信息:

DBCC TRACESTATUS(460);

TraceFlag   Status  Global  Session
460         1       1       0

有谁知道如何让 Trace Flag 460 正常工作?我的服务器信息如下:

Edition: Developer Edition (64-bit)
ProductVersion: 14.0.2037.2
ResourceLastUpdateDateTime: 2020-11-02 21:20:26.783
ResourceVersion: 14.00.2037
BuildClrVersion: v4.0.30319

解决方法

你检查过documentation吗??

它清楚地说:

注意:此跟踪标志适用于 SQL Server 2017 (14.x) CU12 及更高版本 版本

这意味着 SQL Server 2017 的构建版本号必须为 14.0.3045.24 或更高 - 您似乎没有。

因此,您需要在您的机器上安装至少 CU12(或更好:最新的 CU22 - https://www.microsoft.com/en-us/download/details.aspx?id=56128)才能使其正常工作

请参阅:SQL Server 2017 build versions - 有关 SQL Server 2017(及其各种 CU)的正式版本号的所有详细信息