日期:2014-05-18  浏览次数:20517 次

急啊,sp_executesql不能处理单引号吗
听说sp_executesql是参数化传值的,可以避免注入,可是我如下的语句

SQL code
SET @sql=N'update Dos set '+@column+'=1 where ip='+CHAR(39)+@ip+CHAR(39)
EXEC sp_executesql @sql,N'@column VARCHAR(10),@ip VARCHAR(30)',@column,@ip


我把这个@IP赋值 为 s' 就报错了,什么引号不完整,不是说是参数化传的吗,为啥还变成拼接似的呢?

------解决方案--------------------
可以的,如果字符串里本身有单引号,那么用两个单引号表示一个单引号,即把'改为''