在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數(shù)據(jù)庫(kù)/ exec sp_executesql 如何拼裝語(yǔ)句

exec sp_executesql 如何拼裝語(yǔ)句

我直接用 如下sql語(yǔ)句運(yùn)行成功查到理想數(shù)據(jù)

exec sp_executesql N'Select * FROM FC_Repair WHERE  
        F_RepairDepartmentId in 
        (  
            ''ace7f0e7-f158-4587-920d-e76546885198'',''bf421a22-786b-40fd-8afc-c3e5e2364901'' 
        )  '

修改為參數(shù)式后,查不到數(shù)據(jù),請(qǐng)問如果修改下面的sql語(yǔ)句。
這是用dapper DynamicParameters動(dòng)態(tài)參數(shù)查詢后生成的sql語(yǔ)句,所以在不動(dòng)原有sql格式的前提下,找到一個(gè)更優(yōu)解呢?

exec sp_executesql N'Select * FROM FC_Repair WHERE  
        F_RepairDepartmentId in 
        (  
            @F_RepairDepartmentId0 
        )  ', 
N'@F_RepairDepartmentId0 nvarchar(4000)',
@F_RepairDepartmentId0=
N'''ace7f0e7-f158-4587-920d-e76546885198'',''bf421a22-786b-40fd-8afc-c3e5e2364901'' '
回答
編輯回答
傲寒

這種 IN中的語(yǔ)句確實(shí)不能像你那樣寫,無(wú)論如何@F_RepairDepartmentId0都被解釋為 單獨(dú)一個(gè) 字符串。
對(duì)于IN, 需要改成字符串拼接sql的形式,如下面這樣:

DECLARE @sql NVARCHAR(4000);
DECLARE @F_RepairDepartmentId0 NVARCHAR(3000);
SET @F_RepairDepartmentId0 = N'''ace7f0e7-f158-4587-920 D -e76546885198'', ''bf421a22-786b-40fd-8afc-c3e5e2364901''';
SET @sql = N'SELECT *
                       FROM FC_Repair
                       WHERE
                         F_RepairDepartmentId IN
                         (' + @F_RepairDepartmentId0 + ')';

EXEC sp_executesql @sql
2017年6月12日 04:34