Используйте sp_execute_sql
.И параметры:
DECLARE @strQuery NVARCHAR(MAX);
SET @strQuery = '
UPDATE ' + strTableName + '
SET ' + @strField + ' = @strNewFieldValue
WHERE primaryKey = @intNumber';
EXEC sp_executesql @strQuery,
N'@strNewFieldValue varchar(255), @intNumber int',
@strNewFieldValue=@strNewFieldValue, @intNumber=@intNumber;
Обратите внимание, что буквенные значения заменяются параметрами.Даже если внедрение SQL-кода не является проблемой, это упрощает запрос и гарантирует, что странные символы в значениях не будут чрезмерно влиять на запрос.
Кроме того, SQL Server позволяет строкам занимать строки.Поэтому я использовал эту функцию, чтобы удалить некоторые одинарные кавычки.