小编典典

转义动态SQL的一种更优雅的方法?

sql

好的,因此我在搜索存储过程中获得了以下代码行:

SET @where = 'job_code = ''' + REPLACE(@job_code, '''', '''''') + ''''

我想简化的操作基本上有两个- 第一个是用单引号引起来的并置值。
显然,在上面的语句中,我'使用两个转义''符,然后使用a结束字符串,'以便可以连接实际值。一定有更好的方法!

第二个操作REPLACE(@job_code, '''', '''''')我转义该字段中可能存在的任何单引号的位置。

整体上没有写这行代码的更优雅的方法吗?

我以为这是ESCAPE关键字,但是它与LIKE语句紧密相关,所以不要去那里了。


阅读 206

收藏
2021-03-17

共1个答案

小编典典

如果使用sp_executesql,则不确定如何执行sql查询,可能是这样的

EXECUTE sp_executesql 
          N'SELECT * FROM YouTable WHERE job_code = @job_code',
          N'@job_code varchar(100)',
          @job_code = @job_code;
2021-03-17