Я бегу хранимую процедуру, которая вызывает эту хранимую процедуру для обновления записей в таблице на основе параметров, переданных, но я получаю следующее сообщение об ошибке.Процедура динамического SQL Server Update дает ошибку Invalid столбец
Msg 207, Level 16, State 1,
Line 1 Invalid column name '1.24483e+007'.Msg 207, Level 16, State 1,
Line 1 Invalid column name '1.24101e+007'.
Не могу понять, что я пропустил здесь?
Код:
ALTER PROCEDURE [dbo].[usr_UPDATEMEANSTDEV]
@TableName Sysname,
@Symbol NVARCHAR(50),
@MeanLTD float,
@StdevLTD float,
@MaxLTD float,
@MeanYTD float,
@StdevYTD float,
@MaxYTD float
--<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQLCommand NVARCHAR(MAX) =
N'UPDATE ' + QUOTENAME(@TableName) +
' SET LTD_MEAN = ' + QUOTENAME(@MeanLTD) +
',YTD_MEAN = ' + QUOTENAME(@MeanYTD) +
',LTD_MAX = ' + QUOTENAME(@MaxLTD) +
',YTD_MAX = ' + QUOTENAME(@MaxYTD) +
',LTD_STDEV = ' + QUOTENAME(@StdevLTD) +
',YTD_STDEV = ' + QUOTENAME(@StdevYTD) +
+ ' WHERE (SYMBOL = @SYMBOL)';
EXECUTE [dbo].[sp_executesql] @sqlCommand,
N'@Symbol nvarchar(50)', @Symbol = @Symbol;
END
Вы должны использовать 'QUOTENAME' для значений? Разве это не цитирует параметр, который будет использоваться как имя (например, имя таблицы или столбца)? – Kenney
Просьба указать определение функции QUOTENAME, а также образец ввода, который дает вашу ошибку. – LDMJoe
Вы можете распечатать запрос внутри @sqlCommand и разместить здесь? –