0

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

 
   创建表 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这个硬方法

谢谢您的帮助。

4

1 回答 1

0

经过大量研究和反复试验,我得出了一个非常令人满意的结果,现在我将监控我的服务器的结果。

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';

于 2014-05-14T10:16:16.863 回答