【问题标题】:Turning on Trace Flag 460 does not give a better error message打开 Trace Flag 460 并没有给出更好的错误信息
【发布时间】:2021-02-09 06:14:42
【问题描述】:

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

消息 8152,第 16 级,状态 4,第 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

【问题讨论】:

    标签: sql sql-server-2017


    【解决方案1】:

    你查过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)的所有详细信息

    【讨论】:

    • 我发现它必须是 CU12,但找不到与 CU12 或更高版本对应的任何内部版本号。感谢您的信息!
    • 尽管恕我直言,文档是相当不可靠的。例如。 docs for SQL 2016 还说“注意:此跟踪标志适用于 SQL Server 2017 (14.x) CU12 和更高版本。”,但它正在我的 SQL 2016 SP3 上运行。 根据文档,我希望它根本不适用于 SQL 2016。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2011-05-16
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多