将带撇号的变量传递给 SQL 查询
Posted
技术标签:
【中文标题】将带撇号的变量传递给 SQL 查询【英文标题】:Passing Variable With Apostrophe To SQL Query 【发布时间】:2016-11-29 02:23:49 【问题描述】:我正在使用 Excel 运行参数化的 SQL Server 查询。一切正常,除非参数有撇号。例如,假设我的语法是这样的
Select * from testtable where arovaica = @passedvalue
在 Excel 中 @passedvalue 设置为 Michael's
我得到一个错误
语法错误
我应该如何用撇号封装这个变量以使 SQL 正确编译?
【问题讨论】:
两个撇号是必需的''
,或者你可以用+char(39)+
替换它
【参考方案1】:
按照here的建议尝试替换
Select * from testtable where arovaica = REPLACE(@passedvalue, '', '''')
【讨论】:
据我了解,替换将不起作用,因为它似乎会一起删除引号。我认为,从您的评论来看,我只需要将引号加倍,以便 SQL Server 适当地“看到”字符串。Replace
应该可以工作,但我将撇号颠倒了Select REPLACE('Michael''s', '', '''')
。编辑答案以上是关于将带撇号的变量传递给 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
通过 PhpMyAdmin 将带撇号的 SQL 数据库导入 MySQL