Мне нужно создать строку инструкции T-SQL для обновления таблицы в цикле while.Как создать строку оператора T-SQL для обновления таблицы
WHILE @currentDayCount <= @amountOfDays
BEGIN
SELECT @totalErros = COUNT(*)
FROM ErrorLog
WHERE StatusCode = 417
AND Response LIKE '%' + @mensagemResponse + '%'
AND CAST(CreationDate AS DATE) = CAST(@dataPesquisa AS DATE)
SET @SQL = 'UPDATE #AnaliseDeErros417 SET ' +
CAST(FORMAT(CAST(@dataPesquisa AS DATE), 'dd/MM') AS VARCHAR(10)) +
' = ' + CAST(@totalErros AS VARCHAR(8)) + ' WHERE Id = ' + CAST(@contadorMensagens AS VARCHAR(1));
EXECUTE(@SQL)
SET @dataPesquisa = DateADD(DAY, 1, @dataPesquisa)
SET @currentDayCount = @currentDayCount + 1;
END
Все работает отлично, за исключением инструкции SQL обновления.
У вас действительно есть столбец для каждого dd/MM? > оберните свой код для имени столбца в 'quotename()' eg: 'quotename (CAST (FORMAT (CAST (@dataPesquisa AS DATE), 'dd/MM') AS VARCHAR (10)))' – SqlZim
Похоже, вы пытаются построить сводную таблицу. Это то, что вы делаете? – SqlZim