Sql存储过程输入参数包含select的撇号

时间:2014-02-12 00:07:13

标签: sql

我有一个存储过程,它接受输入并给出结果,存储过程工作正常。 它失败的唯一时间是输入在输入字符串中包含撇号。 每次我发送一个输入都是这个过程,在数据库中我确实有一些包含撇号的数据。

这是查询

EXEC('Select C.Name, C.ID, C.Department'
+'From Customer C With (NO LOCK)'
+'Where(c.Name Like ''%' + @input+ ''%')'
);

1 个答案:

答案 0 :(得分:1)

将您的代码更改为此代码,看看是否有帮助。

EXEC('Select C.Name, C.ID, C.Department'
+'From Customer C With (NO LOCK)'
+'Where(c.Name Like ''%' + REPLACE ( @input , '''' , '''''' ) + ''%')'
);

我的观点是,您应该使用'替换''来逃避{{1}}。