Aggiorna una riga solo su due righe identiche in Sybase
-
21-12-2019 - |
Domanda
Ho tre righe nel database fuori da quei due sono identiche.Su quelle due stesse righe devo apportare modifiche in uno usando la sybase.ex.
Row1: ABC 456 ancient block
Row2: ABC 456 ancient block
Row3: DEF 678 class block
.
Devo apportare modifiche in uno dei primi due blocchi cambiando ABC a Xyz. Se ci sono solo due blocchi identici, allora sto facendo il metodo sotto.
begin transaction AA
set rowcount 1
update table
set col1 = XYZ
where col1 = ABC
commit transaction AA
set rowcount 0
.
È facile se ci sono due righe identiche, ma se due identici e uno diverso allora Sybase seleziona la riga unica e lo aggiorna.Qualcuno può dire come risolvere questo problema di tre file? Sto usando ASEISQL per la Sybase.
Soluzione
Hai provato:
update top 1 table
set col1 = XYZ
where col1 = ABC
. Altri suggerimenti
Questa è la soluzione che ho figurato.
begin transaction a
set rowcount 2
update table
set col1 = XYZ
where col4 = block
commit transaction a
set rowcount 0
.
Aggiornerà una delle righe duplicate e la riga unica.Quindi aggiornerò la riga unica al suo valore originale separatamente utilizzando l'istruzione di aggiornamento.Conosco il suo suono grezzo ma nessuno ha risposto in modo soddisfacente.