У меня есть следующий запрос на SQL Server, некоторые значения хранятся в переменных, вычисленных ранее:
SET @Command = N'INSERT INTO Products (Id
,Region
,Name
,Category
,CreatedBy
,CreatedOn
,) SELECT ' + @Id + ',
Region,
''' + @ProductName + ''',
Category,
CreatedBy,
CreatedOn FROM ' + @ProductTable + '
WITH (NOLOCK) WHERE Id IS NOT NULL';
EXEC(@Command)
Он работает нормально, за исключением случаев, когда значение @ProductName
содержит кавычки (например, Продукт Джима), и в этом случае я получаю следующую ошибку:
Незакрытая кавычка после строки символов
Есть ли способ обрабатывать одинарные кавычки в переменной в таком динамическом запросе, где одно из выбранных вставляемых значений (в данном случае @ProductName
) является непосредственно значением, которое должно быть вставлено вместо фактического имени столбца в исходной таблице, чей значение нужно получить для вставки?