私はSQLプログラミングでより効率的になりたいと考えています。 数値サフィックスだけで変更されるフィールド名に対して、更新コマンドを繰り返すためにループを実行しようとしています。たとえば、代わりにx_1, y_1
を書き出すのWhileループを使用したSQL Serverの更新
、その後、更新ごとに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 'は、varcharではなくnvarcharを作成します。それは文字列引用識別子です。例、N'Thisは私の文字列です 'nvarchar、' This is my string 'はvarcharです。 sp_executesqlはnvarcharをとるため、N 'を使用しました。 –