使用局部变量时散列连接提示返回错误

Jie*_*ong 5 sql-server hints execution-plan parameter sql-server-2019

下面的查询使用 StackOverflow2010 示例数据库:

DECLARE @Id INT = 18471

SELECT c.UserId FROM dbo.Comments AS c
INNER HASH JOIN dbo.Users AS u
ON c.UserId = u.Id
AND c.UserId = @Id
Run Code Online (Sandbox Code Playgroud)

使用散列连接提示,它返回以下错误:

由于此查询中定义的提示,查询处理器无法生成查询计划。在不指定任何提示且不使用 SET FORCEPLAN 的情况下重新提交查询

当我添加时它有效 OPTION(RECOMPILE)用字符串文字或替换变量。

什么可能导致这个问题?