我正在从带有撇号的表中读取一个值,我用它创建了一个动态查询,然后运行一个 sp 将其保存在另一个表中,该表在没有撇号的情况下工作正常,但当它包含撇号时会抛出错误。
从 Mytable 中选择 @arguments = 参数
例如 设置@sql = 'exec nameOfSP' + @arguments
@arguments 值来自数据库
@argument 示例值“612f0”,“这是第二个字符串示例”
是的,我知道并同意这是非常糟糕的代码味道,因此问题不在于设计(不幸的是无法更改),而在于当前场景中的最佳解决方案。
我正在寻找可能的编码解决方案吗?
最佳答案
如果您的论点中可能出现引用,请执行以下操作:
set @sql = 'exec nameOfSP ' + REPLACE(@arguments, '''', '''''');
关于mysql - MS SQL从表中读取带撇号的值并将其保存在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125079/