一种选择是建立查询,然后执行
EXEC sp_executesql
DECLARE @Query NVARCHAr(MAX)SET @Query = N' ;WITH foo AS ( ... ) SELECt * FROM foo OPTION (MAXRECURSION ' + CAST(@maxrec AS NVARCHAR) + ');'EXEC sp_executesql @Query
附带说明一下,如果在
MAXRECURSION语句完成之前已达到该值,则查询将无法正常结束,它将引发异常。那可能就是您想要的,但是要意识到这一点。



