MS SQL使用表中的撇号读取值并将其保存在另一个表

时间:2015-06-29 20:35:11

标签: mysql sql sql-server

我正在从带有撇号的表中读取一个值,我用它来创建一个动态查询,而不是运行一个sp将它保存在另一个表中,它在没有撇号的情况下正常工作但在包含撇号时抛出错误。

从Mytable中选择@arguments =参数

e.g。 设置@sql ='exec nameOfSP'+ @arguments

@arguments值来自数据库

@argument sample value'612f0','这是一个示例第二个字符串'

是的我知道并且同意这是非常糟糕的代码味道,因此问题不是关于设计(遗憾的是无法改变),而是关于当前场景中最好的解决方案。

我正在寻找带编码的解决方案吗?

2 个答案:

答案 0 :(得分:0)

“问题不是关于设计(不幸的是无法改变)”似乎有人冒着节省设计的风险,这将花费很多......如果你真的必须使用这样的动态sql你可以使用'to''替换(这是正确的,只需加倍) 但是,我必须说这不是解决问题的方法,只是一种解决方法。
你应该尽一切可能改变设计。

答案 1 :(得分:0)

如果你的论证中有可能引用一个这样的话:

set @sql = 'exec nameOfSP ' + REPLACE(@arguments, '''', '''''');