Я пытаюсь стать более эффективным в своем программировании на SQL. Я пытаюсь запустить цикл, чтобы повторить команду обновления для имен полей, которые изменяются только с помощью числового суффикса.Использование цикла Loop для SQL Server Update
Например, вместо того, чтобы выписывать x_1, y_1
, затем x_2, y_2
для каждого обновления:
DECLARE @a INT
DECLARE @b VARCHAR
SET @a = 1
WHILE @a < 30
set @b = @a
BEGIN
UPDATE source set h = h + "x_"[email protected]
where "y_"[email protected] = 'Sold'
SET @a = @a + 1
END
Позвольте мне знать, если я могу уточнить. Я использую SQL Server 2005.
Спасибо за любые рекомендации.
Я пытаюсь применить решение Адамса и должны понимать, что правильное использование N»в следующем:
exec sp_executesql update source_temp set pmt_90_day = pmt_90_day + convert(money,'trans_total_'[email protected]'')
where convert(datetime,'effective_date_'[email protected]) <= dateadd(day,90,ORSA_CHARGE_OFF_DATE)
and DRC_FLAG_'[email protected] = 'C'
Адам, если бы вы могли помочь мне в отношении моей редакции, я был бы признателен. – homerjay
@homer: N 'создает nvarchar, а не varchar. Это строковый идентификатор цитирования. Пример: N'This - моя строка '- это nvarchar, и' This is my string 'является varchar. Я использовал N ', потому что sp_executesql принимает nvarchar. –