带单引号的值的sql追加-字符串连接

带单引号的值的sql追加-字符串连接,sql,sql-server,Sql,Sql Server,这是我上一个问题的扩展版本,我正试图解决这个问题 DECLARE @fNAME varchar(40) = 'O'brain' DECLARE @query nvarchar(256) DECLARE @id nvarchar(5) = '8' SET @query = 'UPDATE TableName SET columnname = ''' + @fNAME + '''' +'Added on '+ GETDATE() + ''' WHERE Id= ' + convert(nvarcha

这是我上一个问题的扩展版本,我正试图解决这个问题

DECLARE @fNAME varchar(40) = 'O'brain'
DECLARE @query nvarchar(256)
DECLARE @id nvarchar(5) = '8'
SET @query = 'UPDATE TableName SET columnname = ''' + @fNAME + '''' +'Added on '+ GETDATE() + ''' WHERE Id= ' + convert(nvarchar, @id)
我正在尝试使用以下输出 EXEC sp_executesql

Update table name set columnname = 'O''brain Added on Aug  8 2017 11:15AM' where id = 8 

基本上,我试图将一些文本和当前日期以及要更新的名称作为文本添加到一列中

我将定义并执行以下查询:

DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @query nvarchar(256);    
DECLARE @id nvarchar(5) = '8';

SET @query = '
UPDATE TableName
    SET columnname = @fNAME + '' added on '' + convert(varchar(255), GETDATE() )
    WHERE Id = @id';

EXEC sp_executesql @query, N'@fname varchar(40), @id nvarchar(5)', @fname=@fname, @id=@id;

注意:这不会完全按照您的问题设置日期的格式。您没有在代码中为日期选择格式,因此我也没有选择。

我将定义并执行以下查询:

DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @query nvarchar(256);    
DECLARE @id nvarchar(5) = '8';

SET @query = '
UPDATE TableName
    SET columnname = @fNAME + '' added on '' + convert(varchar(255), GETDATE() )
    WHERE Id = @id';

EXEC sp_executesql @query, N'@fname varchar(40), @id nvarchar(5)', @fname=@fname, @id=@id;

注意:这不会完全按照您的问题设置日期的格式。您没有在代码中为日期选择格式,因此我也没有选择。

以下是使用常规更新的方法。这里似乎根本没有理由使用动态sql

DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @id nvarchar(5) = '8';

Update TableName
set columnname = @fNAME + ' added on ' + convert(varchar(255), getdate())

下面是使用普通更新时如何执行此操作。这里似乎根本没有理由使用动态sql

DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @id nvarchar(5) = '8';

Update TableName
set columnname = @fNAME + ' added on ' + convert(varchar(255), getdate())

添加“添加的”附近的语法不正确。“向添加的字符串“”添加另一个单引号”修复了此问题。”。。Thank you添加“added”附近的语法不正确”时出现语法错误。在“”上添加字符串“”时添加另一个单引号修复了该错误。。谢谢,为什么您首先要使用动态sql?在这个问题或您的另一个问题中,我没有看到任何需要动态sql的内容。这似乎增加了一层不必要的复杂性。@SeanLange您能建议如何更好地做到这一点吗。。?根据Gordon的说法,我认为这是最好的方法,为什么要首先使用动态sql?在这个问题或您的另一个问题中,我没有看到任何需要动态sql的内容。这似乎增加了一层不必要的复杂性。@SeanLange您能建议如何更好地做到这一点吗。。?根据Gordon的说法,我认为这是最好的方法,但如果name有单引号,这会失败,对吗?不,不会失败的。它没有使用动态sql,因此不再存在额外的混乱层。这将导致在2018-02-23增加columnname值O'brain谢谢!!好吧,我想我变得更加困惑和深思熟虑了!!我喜欢这个保持简单!!再次感谢你!!但如果名称中有单引号,则此操作将失败,对吗?不,它不会失败。它没有使用动态sql,因此不再存在额外的混乱层。这将导致在2018-02-23增加columnname值O'brain谢谢!!好吧,我想我变得更加困惑和深思熟虑了!!我喜欢这个保持简单!!再次感谢你!!