仅在sybase中的两个相同行中更新一行

时间:2014-04-12 14:29:20

标签: sql tsql sybase sybase-ase

我在数据库中有三行,这两行是相同的。在这两个相同的行中,我必须使用sybase.Ex。

进行更改
Row1: ABC 456 ancient block
Row2: ABC 456 ancient block
Row3: DEF 678 class   block

我必须通过将ABC更改为XYZ来对前两个块中的一个进行更改。如果只有两个相同的块,那么我正在执行以下方法。

begin transaction AA
set rowcount 1
update table 
set col1 = XYZ
where col1 = ABC
commit transaction AA
set rowcount 0

如果有两个相同的行但是如果两个相同且一个不同,那么sybase很容易选择唯一的行并更新它。有人能说出如何解决这三行问题吗? 我正在使用aseisql作为Sybase。

2 个答案:

答案 0 :(得分:1)

你试过了吗?

update top 1 table 
set col1 = XYZ
where col1 = ABC

答案 1 :(得分:0)

这是我想到的解决方案。

begin transaction a
set rowcount 2
update table 
set col1 = XYZ
where col4 = block

commit transaction a
set rowcount 0

它将更新其中一个重复行和唯一行。然后,我将使用update语句分别将唯一行更新为其原始值。我知道它原本粗糙,但没有人满意地回答。