减少重新编译,sp_execute



我对我的服务器上的问题很糟糕,当问题重新编译查询时,我们在这个服务器上报告,这是动态查询所必需的,研究解决这个问题的方法,我在这里得到了

<>之前创建表YEAR_YEAR (Y INT)

INSERT YEAR_YEAR (Y) VALUES (2011) INSERT YEAR_YEAR (Y) VALUES (2012) INSERT YEAR_YEAR (Y) VALUES (2013) INSERT YEAR_YEAR (Y) VALUES (2014) EXECUTE sys.sp_executesql N'SELECT * FROM YEAR_YEAR WHERE CONVERT(NVARCHAR,Y) IN (@RAEY) ' , N'@RAEY NVARCHAR(100)', @RAEY = N'2012,2013'; 之前

当您在变量中放置单个参数时工作,但是当我添加逗号时不返回任何东西,我已经做了数十次转换,从试用,替换…

回顾数据来自报告,其中许多不是我做的,所以我必须以艰难的方式对待,那就是varchar

谢谢你的帮助

经过大量的研究和一些试验和错误,我得到了一个非常满意的结果,现在我将监视我的服务器的结果。

EXECUTE sys.sp_executesql
    N'SELECT * FROM YEAR_YEAR 
    WHERE
    (CHARINDEX('','' + CONVERT(VARCHAR,Y) + '','', '','' + REPLACE(@RAEY, '' '', '''') + '','') > 0)
    '
    ,
    N'@RAEY NVARCHAR(100)',
    @RAEY = N'2012,2013';
 之前

相关内容

  • 没有找到相关文章

最新更新