2017-07-20 6 views
1

最初の投稿...回答がどこかにあれば謝罪します - 私は似たような質問への回答を見つけましたが、これはありません。 SQLの知識はそれほど良いものではありませんが、私は通常必要なものを達成することができます。一連の同じSQLテーブルの同じ列を更新する方法

データベースには、異なる名前を持つ同一のテーブルがあります。 AHH_ACNT、AHL_ACNTなど。

BEGIN TRAN 
GO 
UPDATE AHH_ACNT 
SET ALLOCN_IN_PROGRESS = 99 
WHERE ALLOCN_IN_PROGRESS = 1 
SELECT * FROM AHH_ACNT 
WHERE ALLOCN_IN_PROGRESS =1 
ROLLBACK 
--COMMIT 


BEGIN TRAN 
GO 
UPDATE AHL_ACNT 
SET ALLOCN_IN_PROGRESS = 99 
WHERE ALLOCN_IN_PROGRESS = 1 
SELECT * FROM AHL_ACNT 
WHERE ALLOCN_IN_PROGRESS = 1 
ROLLBACK 
--COMMIT 

しかし、このようにするには、26個の個別のステートメントが必要です。理想的には、私は UPDATE%_ACNTと書くでしょうが、それはうまくいかないでしょう! これを行うために単一のクエリを使用する方法はありますか?新しいテーブルがあれば、別の行を作成する必要はありません。

事前に感謝します!

答えて

0

1つの更新ステートメントで複数のテーブルを更新することはできません。実行するのが最善のことの1つは、トランザクション(以下に示す)を使用して、2つのUPDATEステートメントが、部分的に完全な操作について心配する必要がないように処理されることを確認することです。

BEGIN TRANSACTION 

UPDATE AHH_ACNT 
SET ALLOCN_IN_PROGRESS = 99 
WHERE ALLOCN_IN_PROGRESS = 1 

UPDATE AHL_ACNT 
SET ALLOCN_IN_PROGRESS = 99 
WHERE ALLOCN_IN_PROGRESS = 1 

COMMIT 
関連する問題