亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

exec sp_executesql 如何拼裝語句

exec sp_executesql 如何拼裝語句

叮當貓咪 2018-08-10 14:08:09
我直接用 如下sql語句運行成功查到理想數據exec sp_executesql N'Select * FROM FC_Repair WHERE           F_RepairDepartmentId in          (               ''ace7f0e7-f158-4587-920d-e76546885198'',''bf421a22-786b-40fd-8afc-c3e5e2364901''          )  '修改為參數式后,查不到數據,請問如果修改下面的sql語句。這是用dapper DynamicParameters動態參數查詢后生成的sql語句,所以在不動原有sql格式的前提下,找到一個更優解呢?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'' '
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

這種 IN中的語句確實不能像你那樣寫,無論如何@F_RepairDepartmentId0都被解釋為 單獨一個 字符串。
對于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


查看完整回答
反對 回復 2018-08-12
  • 1 回答
  • 0 關注
  • 773 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號