【发布时间】:2013-04-25 15:21:44
【问题描述】:
设置:
我正在 SQL Server 2008 R2 中试验 OPTIMIZE FOR 子句。我已将以下内容放在查询的末尾。
OPTION (OPTIMIZE FOR (@UserType= 'M', @Date UNKNOWN))
问题:
但是,我收到以下错误。
The variable "@UserType" is specified in the OPTIMIZE FOR clause, but is not used in the query.
此变量在查询中的子查询中使用,并且仅在该位置使用。
如果我尝试将OPTIMIZE FOR 移动到子查询中,则存储的过程不会编译。同样,我不能将子查询放在 CTE 中并在其中进行优化;也不编译。
Incorrect syntax near the keyword 'OPTION'.
问题:
有什么方法可以在 CTE 或子查询中使用 OPTIMIZE FOR 子句?我更喜欢使用 CTE,因为它们通常更干净、更易读。
【问题讨论】:
标签: sql-server sql-server-2008-r2 query-optimization common-table-expression