将带撇号的变量传递给 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

带撇号的 Python 标题()

带撇号的字母消失了[重复]

如何在Elasticsearch上搜索带或不带撇号的单词?并处理拼写错误?

如何通过 MySql 传递带有撇号的 C# 变量

如何将包含撇号的字符串传递给android中的查询?