我有一个存储过程,它接受输入并给出结果,存储过程工作正常。 它失败的唯一时间是输入在输入字符串中包含撇号。 每次我发送一个输入都是这个过程,在数据库中我确实有一些包含撇号的数据。
这是查询
EXEC('Select C.Name, C.ID, C.Department'
+'From Customer C With (NO LOCK)'
+'Where(c.Name Like ''%' + @input+ ''%')'
);
答案 0 :(得分:1)
将您的代码更改为此代码,看看是否有帮助。
EXEC('Select C.Name, C.ID, C.Department'
+'From Customer C With (NO LOCK)'
+'Where(c.Name Like ''%' + REPLACE ( @input , '''' , '''''' ) + ''%')'
);
我的观点是,您应该使用'
替换''
来逃避{{1}}。