此问题的sql Append for value with single quotes上的扩展版本正在尝试修复
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
基本上我试图将一些文本和当前日期以及名称附加到一列中作为文本进行更新
答案 0 :(得分:3)
我会将查询定义并执行为:
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;
注意:这不会完全按照您的问题格式化日期。您没有为代码中的日期选择格式,因此我也没有。
答案 1 :(得分:1)
以下是通过正常更新执行此操作的方法。似乎没有理由在这里使用动态SQL。
DECLARE @fNAME varchar(40) = 'O''brain';
DECLARE @id nvarchar(5) = '8';
Update TableName
set columnname = @fNAME + ' added on ' + convert(varchar(255), getdate())