sql使用单引号追加值

时间:2018-02-22 21:52:30

标签: sql-server tsql

我有以下查询

DECLARE @fNAME varchar(40) = 'Obrain'
DECLARE @query nvarchar(256)
SET @query = 'UPDATE TableName SET columnname = ''' + @fNAME + ''''
select @query

按预期结果

UPDATE TableName SET columnname = 'Obrain' 

但是如果我用单引号改变输入@fname

    DECLARE @fNAME varchar(40) = 'O''brain'
    DECLARE @query nvarchar(256)
    SET @query = 'UPDATE TableName SET columnname = ''' + @fNAME + ''''
    select @query

如果我遇到单引号问题,我会得到以下结果

UPDATE TableName SET columnname = 'O'brain'
  1. 如何通过微小更改修复此查询

  2. 最好的方法是什么

1 个答案:

答案 0 :(得分:3)

正确的方法吗?使用sp_executesql和参数:

DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @query nvarchar(256);
SET @query = '
    UPDATE TableName SET columnname = @fNAME'

EXEC sp_executesql @query, N'@fNAME varchar(40)', @fName=@fName;