Обновите одну строку только из двух одинаковых строк в Sybase

StackOverflow https://stackoverflow.com//questions/23031683

  •  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
.

Он обновит один из дубликатовных строк и уникальный ряд.Затем я буду обновлять уникальную строку к исходному значению отдельно, используя оператор обновления.Я знаю, что его звуковой грубой, но никто не ответил удовлетворительно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top