Ich versuche, in meiner SQL-Programmierung effizienter zu werden. Ich versuche eine Schleife auszuführen, um einen Aktualisierungsbefehl für Feldnamen zu wiederholen, die sich nur durch ein numerisches Suffix ändern.Verwenden von While-Schleife für SQL Server-Update
Zum Beispiel, statt des Schreibens aus x_1, y_1
, dann x_2, y_2
für jedes Update:
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
Lassen Sie mich wissen, ob ich klären kann. Ich verwende SQL Server 2005.
Danke für jede Anleitung.
Ich versuche Adams-Lösung anzuwenden und müssen verstehen, was richtige Verwendung von N‘in der folgenden:
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'
Adam, wenn Sie in Bezug auf meine Revision helfen könnten, würde ich es begrüßen. – homerjay
@homer: N 'erstellt ein Nvarchar, anstatt ein Varchar. Es ist eine String-Quoting-Kennung. Beispiel, N'Dies ist mein String 'ist ein Nvarchar, und' Dies ist mein String 'ist ein Varchar. Ich habe N 'verwendet, weil sp_executesql einen nvarchar akzeptiert. –