A atualização de uma linha apenas duas linhas idênticas no sybase
-
21-12-2019 - |
Pergunta
Eu tenho três linhas no banco de dados, fora esses dois são idênticos.Fora esses dois mesmas linhas que eu tenho para fazer alterações em um único usar o sybase.Ex.
Row1: ABC 456 ancient block
Row2: ABC 456 ancient block
Row3: DEF 678 class block
Eu tenho para fazer alterações em um dos dois primeiros bloco alterando ABC para a XYZ.Se houver apenas dois blocos idênticos, em seguida, eu estou fazendo o método abaixo.
begin transaction AA
set rowcount 1
update table
set col1 = XYZ
where col1 = ABC
commit transaction AA
set rowcount 0
É fácil se houver duas linhas idênticas, mas se duas iguais e uma diferente, em seguida, sybase pega a linha exclusiva e atualiza-lo.Alguém pode dizer como resolver este três linhas problema ?Eu estou usando aseisql para o Sybase.
Solução
Você já tentou:
update top 1 table
set col1 = XYZ
where col1 = ABC
Outras dicas
Esta é a solução que eu imaginei.
begin transaction a
set rowcount 2
update table
set col1 = XYZ
where col4 = block
commit transaction a
set rowcount 0
Ele irá atualizar uma das linhas duplicadas e a única linha.Então vou atualizar a linha exclusiva para seu valor original, separadamente, usando a instrução update.Eu sei que seu som bruto, mas ninguém respondeu de forma satisfatória.