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

Turning on Trace Flag 460 does not give a better error message

我有一个以错误结束的大型插入查询:

Msg 8152, Level 16, State 4, Line 1
String or binary data would be truncated

经过一些研究,我尝试使用 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了吗?

它清楚地写着:

Note: This trace flag applies to SQL Server 2017 (14.x) CU12 and higher builds

这意味着 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)的官方版本号的所有详细信息