第一篇帖子...如果答案在这里,我道歉 - 我找到了类似问题的答案,但不是这个问题。我对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个单独的陈述。理想情况下我会写 更新%_ACNT,但这不起作用! 有没有办法可以使用单个查询来执行此操作?然后,如果有一个新表,我将不必创建另一组行...
非常感谢提前!
答案 0 :(得分:0)
请注意,您无法在单个更新语句中更新多个表。最好的办法之一是使用一个事务(如下所示)来确保处理两个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