【发布时间】:2019-05-02 14:54:21
【问题描述】:
我无法让 sp_executesql 使用非常简单的语句。
当我这样做时
select * from vwChassisHistory t where t.ChassisNumber like '%1234%'
正如我所料,它重新调整了 214 行
但是当我这样做时
exec sp_executesql
N'select * from vwChassisHistory t where t.ChassisNumber like ''%@ChassisNumber%'' ',
N'@ChassisNumber varchar(4)',@ChassisNumber='1234'
返回 0 行
所以我一定是在这里犯了一个非常愚蠢的错误,但我就是看不到它。
如何将sp_executesql 与like 和parameter 一起使用?
我查看this,但这个问题是关于动态构建语句,所以它对我没有帮助
this 也没有给我答案
编辑
要让SqlCommand 生成已接受答案中的 sql,我必须修改此代码中的代码
string chassisNumber = "1234";
string sql = "select * from vwChassisHistory t ";
string where += "where t.ChassisNumber like '%@ChassisNumber%' ";
到这里
string where = "where t.ChassisNumber like '%' + @ChassisNumber + '%' ";
【问题讨论】:
标签: sql-server tsql stored-procedures sql-server-2014 sql-like