Обновите одну строку только из двух одинаковых строк в Sybase
-
21-12-2019 - |
Вопрос
У меня есть три ряда в базе данных из этих двух идентичны.Из этих двух тем же рядов я должен вносить изменения в один с помощью Sybase.ex.
Row1: ABC 456 ancient block
Row2: ABC 456 ancient block
Row3: DEF 678 class block
.
Я должен вносить изменения в один из первых двух блоков, изменяя ABC в xyz.if, есть только два одинаковых блока, то я делаю ниже метод ниже.
begin transaction AA
set rowcount 1
update table
set col1 = XYZ
where col1 = ABC
commit transaction AA
set rowcount 0
.
Легко, если есть два одинаковых строка, но если два идентичных и один разные, то Sybase выбирает уникальную строку и обновляет его.Может кто-нибудь сказать, как решить эту проблему с тремя рядами? Я использую aseisql для sybase.
Решение
Вы пробовали:
update top 1 table
set col1 = XYZ
where col1 = ABC
. Другие советы
Это решение, которое я полагал.
begin transaction a
set rowcount 2
update table
set col1 = XYZ
where col4 = block
commit transaction a
set rowcount 0
.
Он обновит один из дубликатовных строк и уникальный ряд.Затем я буду обновлять уникальную строку к исходному значению отдельно, используя оператор обновления.Я знаю, что его звуковой грубой, но никто не ответил удовлетворительно.