Я пытаюсь увеличить набор параметров в моем скрипте на 1 каждый цикл моего while.Приращение параметра типа INT в динамическом SQL
Это пример того, что я делаю в моем сценарии:
DECLARE @I AS INT;
SET @I = 0;
DECLARE @SQL NVARCHAR(MAX)
SET @SQL =
'WHILE '+ Convert(Varchar, @I) +' < (SELECT statement here...)
BEGIN
SET '+ Convert(Varchar, @I) +' = '+ Convert(Varchar, (@I + 1))'
END'
Существует много больше к этому сценарию, но это соответствующая часть. Я понимаю, что '+ Convert(Varchar, @I) +'
просто собирается связать значение @I с строкой, но может ли кто-нибудь предложить какие-либо советы в том, как я могу сделать это так, чтобы значение @I увеличивалось на 1.
В настоящее время при выполнении SQL, набор команд будет в конечном итоге, как следующее:
SET 0 = 0 + 1
, где, как мне нужно, чтобы изменить фактическое значение переменных для следующего цикла.
Возможно ли это?
Настроен ли ваше сердце на петлях? попробуйте объяснить исходную проблему и, возможно, будет лучший способ. Я всегда чувствую, что есть проблема, когда в sql появляются петли. – Snowlockk
Также не конвертируйте целые числа в varchar's, вы столкнетесь с проблемами – balaji
@Snowlockk Я знаю альтернативный метод, но этот скрипт будет запускаться один раз в любой «чистой» системе. Я хочу уменьшить количество раз, когда я попал на сервер в этом процессе, поэтому я создал цикл. – Chris