打开跟踪标志 460 并不会给出更好的错误消息

Ext*_*igo 2 sql sql-server-2017

我有一个大型插入查询,以错误结尾:

消息 8152,级别 16,状态 4,第 1 行
字符串或二进制数据将被截断

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

INSERT... 
VALUES...
OPTION (QUERYTRACEON 460);
Run Code Online (Sandbox Code Playgroud)

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

DBCC TRACEON(460, -1);
Run Code Online (Sandbox Code Playgroud)

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

DBCC TRACESTATUS(460);

TraceFlag   Status  Global  Session
460         1       1       0
Run Code Online (Sandbox Code Playgroud)

有人知道如何让 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
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 5

你检查过文档吗??

它清楚地说:

注意:此跟踪标志适用于 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 构建版本- 有关 SQL Server 2017 官方版本号(及其各种 CU)的所有详细信息