【问题标题】:Passing Variable With Apostrophe To SQL Query将带撇号的变量传递给 SQL 查询
【发布时间】:2016-11-29 02:23:49
【问题描述】:

我正在使用 Excel 运行参数化的 SQL Server 查询。一切正常,除非参数有撇号。例如,假设我的语法是这样的

Select * from testtable where arovaica = @passedvalue

在 Excel 中 @passedvalue 设置为 Michael's 我得到一个错误

语法错误

我应该如何用撇号封装这个变量以使 SQL 正确编译?

【问题讨论】:

  • 两个撇号是必需的'',或者你可以用+char(39)+替换它

标签: excel tsql sql-server-2008-r2 excel-2013 vba


【解决方案1】:

按照here的建议尝试替换

    Select * from testtable where arovaica = REPLACE(@passedvalue, '', '''')

【讨论】:

  • 据我了解,替换将不起作用,因为它似乎会一起删除引号。我认为,从您的评论来看,我只需要将引号加倍,以便 SQL Server 适当地“看到”字符串。
  • Replace 应该可以工作,但我将撇号颠倒了Select REPLACE('Michael''s', '', '''')。编辑答案
猜你喜欢
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 2022-10-06
  • 2011-05-18
相关资源
最近更新 更多